已有40人关注
session存数据库问题
发表在PHP图书答疑 2014-09-02
是否精华
版块置顶:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\117\index.php on line 23

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\117\index.php:23) in C:\AppServ\www\117\index.php on line 71

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\117\index.php:23) in C:\AppServ\www\117\index.php on line 71

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\117\index.php on line 40
------------------------------------------------------------
下列代码运行后出现如上问题:

----------------------------------------------

<?php
function _session_open($save_path,$session_name)
{
global $handle;
$handle = mysql_connect('127.0.0.1:3306','root','moting1a') or die('数据库连接失败'); // 连接MYSQL数据库
mysql_select_db('db_database11',$handle) or die('数据库中没有此库名'); // 找到数据库
return(true);
}

function _session_close()
{
global $handle;
mysql_close($handle);
return(true);
}

function _session_read($key)
{
global $handle; // 全局变量$handle 连接数据库
$time = time(); // 设定当前时间
$sql = "select session_data from tb_session where session_key = '$key' and session_time > $time";
$result = mysql_query($sql,$handle);
$row = mysql_fetch_array($result);
if ($row)
{
return($row['session_data']); // 返回Session名称及内容
}else
{
return(false);
}
}

function _session_write($key,$data)
{
global $handle;
$time = 60*60; // 设置失效时间
$lapse_time = time() + $time; // 得到Unix时间戳
$sql = "select session_data from tb_session where session_key = '$key' and session_time > $lapse_time";
$result = mysql_query($sql,$handle);
if (mysql_num_rows($result) == 0 ) // 没有结果
{
$sql = "insert into tb_session values('$key','$data',$lapse_time)"; // 插入数据库sql语句
$result = mysql_query($sql,$handle);
}else
{
$sql = "update tb_session set session_key = '$key',session_data = '$data',session_time = $lapse_time where session_key = '$key'"; // 修改数据库sql语句
$result = mysql_query($sql,$handle);
}
return($result);
}

function _session_destroy($key)
{
global $handle;
$sql = "delete from tb_session where session_key = '$key'"; // 删除数据库sql语句
$result = mysql_query($sql,$handle);
return($result);
}

function _session_gc($expiry_time)
{
global $handle;
$lapse_time = time(); // 将参数$expiry_time赋值为当前时间戳
$sql = "delete from tb_session where expiry_time < $lapse_time"; // 删除数据库sql语句
$result = mysql_query($sql,$handle);
return($result);
}

session_set_save_handler('_session_open','_session_close','_session_read','_session_write','_session_destroy','_session_gc');

session_start();

$_SESSION['user'] = 'mr';
$_SESSION['pwd'] = 'mrsoft';
?>
分享到:
精彩评论 3
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2014-09-05
沙发
读者您好:
该段代码中的sql语句应该没有问题,请检查连接数据库的密码是否正确.若未解决,请继续跟帖.
mmomo1a
学分:0 LV1
TA的每日心情
开心
2020-04-21 20:15:05
2014-09-05
板凳
早已经解决 ,,等你们出来解决 真的很难!!是mysql中没有数据库的原因!!


这本书的排版做的不好!!!!!!!!!!
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2014-09-10
地板
读者您好:
如果您对图书排版有好的建议,可以发送到mingrisoft@mingrisoft.com我们的企业邮箱中。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照