Php 会话\u设置\u保存\u处理程序wamp崩溃

Php 会话\u设置\u保存\u处理程序wamp崩溃,php,mysql,session,wamp,Php,Mysql,Session,Wamp,我正在尝试使用session\u set\u save\u处理程序,以便使用下面的代码在mySQL数据库中保存会话 每次尝试加载页面时,我都会收到一个关于httpd.exe的应用程序错误,如下图所示 如果我删除以下行,页面就可以正常工作 session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc"); 我猜这意味着我的代码中有一个错误,但我什么也

我正在尝试使用session\u set\u save\u处理程序,以便使用下面的代码在mySQL数据库中保存会话

每次尝试加载页面时,我都会收到一个关于httpd.exe的应用程序错误,如下图所示

如果我删除以下行,页面就可以正常工作

session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
我猜这意味着我的代码中有一个错误,但我什么也看不到。任何帮助都将不胜感激,谢谢

function sess_open($sess_path, $sess_name) {
 return true;
}

function sess_close() {
 return true;
}

function sess_read($sess_id) {
 $result = dbQuery("SELECT data FROM sessions WHERE id = '$sess_id';");
 if (!mysqli_num_rows($result)) {
 $CurrentTime = time();
 $result = dbQuery("INSERT INTO sessions (id, access) VALUES ('$sess_id', '$CurrentTime');");
 return '';
 } else {
 extract(mysqli_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
 $result = dbQuery("UPDATE sessions SET access = '$CurrentTime' WHERE id = '$sess_id';");
 return $sess_data;
 }
}

function sess_write($sess_id, $data) {
 $CurrentTime = time();
 $result = dbQuery("UPDATE sessions SET data = '$data', access = '$CurrentTime' WHERE id = '$sess_id';");
 return true;
}

function sess_destroy($sess_id) {
 $result = dbQuery("DELETE FROM sessions WHERE id = '$sess_id';");
 return true;
}

function sess_gc($sess_maxlifetime) {
 $CurrentTime = time();
 $result = dbQuery("DELETE FROM sessions WHERE access + $sess_maxlifetime < $CurrentTime;");
 return true;
}

session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();
函数sess\u open($sess\u路径,$sess\u名称){
返回true;
}
函数sess_close(){
返回true;
}
函数sess\u read($sess\u id){
$result=dbQuery(“从id为“$sess_id”;”的会话中选择数据”;
如果(!mysqli_num_rows($result)){
$CurrentTime=time();
$result=dbQuery(“插入会话(id,访问)值(“$sess_id”,“$CurrentTime”);”;
返回“”;
}否则{
extract(mysqli_fetch_数组($result),EXTR_前缀_ALL,'sess');
$result=dbQuery(“更新会话集访问权限='$CurrentTime',其中id='$sess_id';”;
返回$sess_数据;
}
}
函数sess\u write($sess\u id,$data){
$CurrentTime=time();
$result=dbQuery(“更新会话集数据='$data',访问='$CurrentTime',其中id='$sess_id';”);
返回true;
}
函数sess\u destroy($sess\u id){
$result=dbQuery(“从id为“$sess_id”;”的会话中删除”;
返回true;
}
函数sess\u gc($sess\u maxlifetime){
$CurrentTime=time();
$result=dbQuery(“从access+sess_maxlifetime<$CurrentTime;的会话中删除”);
返回true;
}
会话设置保存处理程序(“sess_打开”、“sess_关闭”、“sess_读取”、“sess_写入”、“sess_销毁”、“sess_gc”);
会话_start();

这是httpd中的错误,而不是代码中的错误。或者,更确切地说,这肯定是由您的代码引起的,但是apache不应该像那样崩溃(您应该会遇到PHP错误,而在这里它只是使服务器崩溃)。请尝试更新wamp,或者尝试安装xampp,并检查是否可以得到更有意义的错误。

谢谢,我已经安装了xampp,它马上就可以工作了!!!不确定WAMP有什么问题,但从现在起将坚持使用XAMPP。似乎运行得更快,因为我总是发现WAMP有点慢,尤其是mySQL连接,不确定这是否只是我的设置。这些服务经常出现问题。我一直在使用它们进行开发,但如果您希望在windows上进行真正严肃的PHP设置,您可能应该求助于IIS,它在较新版本(IIS7以上)上具有(相当好的)PHP托管功能。或者,你应该用linux安装一个虚拟机。顺便说一句:如果这个答案有帮助,你应该接受它(点击左边的V号)或者至少向上投票(按向上箭头)。这是说“谢谢”的方式,也是说你的问题已经得到了回答。