php5.5 session_set_save_handler 串連資料庫有關問題
來源:互聯網
上載者:User
php5.5 session_set_save_handler 串連資料庫問題
好久前忘了在什麼地方抄來的,一直好用,但是升級到PHP5.5就不好用了 出現警告
伺服器無法修改PHP.ini 只好自己試著用mysqli寫 但是一直寫不出來 請高手指教!!
謝謝
function connect_db() {
$db_connect =
mysql_connect("host_name", "user_name", "password")
or die("Could not connect");
return $db_connect;
}
function open ($save_path, $session_name) {
global $db;
$db = connect_db();
return true;
}
function close() {
return true;
}
function read ($id) {
global $db;
mysql_select_db("db_name");
$result = mysql_query("SELECT *
FROM session_t
WHERE session_id='{$id}'");
if(mysql_num_rows($result) == 1){
$row = mysql_fetch_array($result);
return $row['session_data'];
} else {
return "";
}
}
function write ($id, $sess_data) {
global $db;
mysql_select_db("db_name");
$result = mysql_query("SELECT *
FROM session_t
WHERE session_id='{$id}'");
if(mysql_num_rows($result) == 1){
$result = mysql_query("UPDATE session_t
SET session_data='{$sess_data}'
WHERE session_id='{$id}'");
}else{
$date = date('Y-m-d H:i:s');
$result = mysql_query("INSERT INTO session_t
VALUES('{$id}' ,
'{$sess_data}' ,'{$date}')");
}
return true;
}
function destroy ($id) {
global $db;
mysql_select_db("db_name");
$result = mysql_query("DELETE from session_t
WHERE session_id='{$id}'");
return true;
}
function gc ($maxlife_time) {
return true;
}
session_set_save_handler
("open", "close", "read", "write", "destroy", "gc");
?>
------解決方案--------------------
就等著你呢
出錯是很正常的,改了就是了
不報錯而又工作不正常,才是麻煩事
出錯的 mysqli 函數是因為不能預設資料庫連接字
你把 $db 作為出錯函數的第一個參數就可以了