以下函数应该接受PHP
session_id
并更新它,否则用户将在5分钟内注销:
function update_session_id( $session_id = "" )
{
$stmt = "UPDATE session SET start=NOW() WHERE id='$session_id';";
$query = mysql_query( $stmt )
or die( mysql_error() );
if( $query )
{
return true;
}
return false;
}
出于某种原因,PHP
即使我正在使用"\"p9bb7t9gmchtvr6scr8hseufm6\""
,也会返回stripslashes()
,这似乎根本不会删除这些斜杠。这就是我的查询不起作用的原因......
调用该函数的代码非常简单:
else if( strcmp( $action, "query" ) == 0 )
{
$session_id = stripslashes( $_POST['session_id'] );
$data = getCustomer();
update_session_id( $session_id );
echo json_encode( $session_id );
}
但我不知道为什么我会在我的字符串上添加这些额外的斜杠。有什么想法吗? 更新查询示例:
"UPDATE session SET start=NOW() WHERE id='\"p9bb7t9gmchtvr6scr8hseufm6\"';"
答案 0 :(得分:1)
生成语句的正确代码是:
$stmt = sprintf("UPDATE session SET start=NOW() WHERE id='%s'",
mysql_real_escape_string($session_id)
);
如果您在结果查询中看到双引号,则表示双引号已存在。
另请参阅:PDO