php - mysql_fetch_assoc 数据到用户浏览器中的 COOKIE

标签 php mysql cookies

我在 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 时,它​​会显示以下错误

fatal error :函数名称必须是/home/worlds/public_html/index/ctrl.php 第 15 行中的字符串

我的浏览器中的 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/

相关文章:

php - Shopify - 添加新产品时出现 API 错误(词法 JSON 错误)

MySQL select - 首先获取指定的列,然后是所有其他列(星号) - 错误 1064

php - 根据wordpress的id获取数据

go - 无法在浏览器中设置 cookie 但与 postman 一起工作

Node.js Express + Passport + Cookie session n > 1 个服务器

javascript - 每个浏览器 session 运行一次脚本,但在结束时卡住脚本

php - Laravel 上的 Steam OpenID 身份验证

php - 如何恢复 netbeans 的默认行为?

php - 在 PHP 中输​​出二进制数据

php - 如果查询未返回任何内容,则显示消息