我在mysql中有数据,不需要任何安全性。
我有一个sql查询字符串,每次使用mysql_fetch_assoc获取数据。
因此,我计划将数据存储在用户浏览器中。以减少对sql的需求。
if (!isset($_COOKIE['countries'])){
$query = "SELECT iso,name FROM sel_country";
$countries = mysql_query($query);
setcookie('countries', serialize($countries), time()+3600);
}else{
$countries = $unserialize($_COOKIE['countries']);
}
while ($row = mysql_fetch_assoc($countries)) {echo $row['name']}
但是,当设置cookie时,它显示以下错误
致命错误:函数名称必须是第15行的/home/worlds/public_html/index/ctrl.php中的字符串
我在浏览器中的Cookie将内容显示为i%3A0%3B
请帮帮我,我应该怎么走?
最佳答案
您无法序列化结果资源,首先需要在其上使用mysql_fetch_assoc。直到您调用fetch方法,结果才真正从mysql服务器中提取出来。
像这样:
if (!isset($_COOKIE['countries'])){
$query = "SELECT iso,name FROM sel_country";
$countries = mysql_query($query);
$result = array();
while ($row = mysql_fetch_assoc($countries)) {$result[] = $row['name']}
setcookie('countries', json_encode($result), time()+3600);
//And to make the rest of the script able to use it as below:
$countries = $result;
} else {
$countries = json_decode($_COOKIE['countries']);
}
关于php - mysql_fetch_assoc数据到用户浏览器中的COOKIE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19738769/