连接数据库后出现warning,无法写入数据库。

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

function _session_close()
{
	global $handle;
	mysqli_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 = mysqli_query($handle,$sql);
	$row = mysqli_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时间戳
	$handle = mysqli_connect('localhost','admin','') or die('数据库连接失败');		// 连接MYSQL数据库
	mysqli_select_db($handle,'db_database11') or die('数据库中没有此库名');				// 找到数据库
	$sql = "select session_data from tb_session where session_key = '$key' and session_time > $lapse_time";
	$result = mysqli_query($handle,$sql);
	if (mysqli_num_rows($result) == 0 )				// 没有结果
	{
		$sql = "insert into tb_session values('$key','$data',$lapse_time)";		// 插入数据库sql语句
		$result = mysqli_query($handle,$sql);
	}else
	{
		$sql = "update tb_session set session_key = '$key',session_data = '$data',session_time = $lapse_time where session_key = '$key'";												// 修改数据库sql语句
		$result = mysqli_query($handle,$sql);
	}
	return($result);
}

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

function _session_gc()
{
	global $handle;
	$lapse_time = time();									// 将参数$lapse_time赋值为当前时间戳
	$sql = "delete from tb_session where session_time < $lapse_time";	// 删除数据库sql语句
	$result = mysqli_query($handle,$sql);
	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';
?>

 

出现如下警告:

php.ini搜索php_mysqli.dll去掉前面的分号,session设置https://www.cnblogs.com/okzzx/p/7006912.html

php.ini中没有php_mysqli.dll呀

我用搜索没有找到呢

$result = mysqli_query($conn,$sql);

if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

42行,加上一个判定

if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

else

{

if (mysqli_num_rows($result) == 0 ) // 没有结果

 

{

 

$sql = "insert into tb_session values('$key','$data',$lapse_time)"; // 插入数据库sql语句

 

$result = mysqli_query($handle,$sql);

 

}else

 

{

 

$sql = "update tb_session set session_key = '$key',session_data = '$data',session_time = $lapse_time where session_key = '$key'"; // 修改数据库sql语句

 

$result = mysqli_query($handle,$sql);

 

}

}

sql语句出错,看看错在哪里

return($result);

修改为

return serialize($result);

or

return (string)$result;

这是网上的教程,之前已经按照做了,但是没变化

没有就直接加extension=php_mysqli.dll

弄完重启一下

 

1、先检查php的mysqli扩展

2、tmp目录写入权限有没有?