首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的数据库没有更新

我的数据库没有更新
EN

Stack Overflow用户
提问于 2013-08-12 14:22:06
回答 3查看 103关注 0票数 0
代码语言:javascript
复制
<?php
    $db = new mysqli('localhost', 'root', 'root', 'chatting');
    $query = "SELECT * FROM user WHERE state = 1 AND getp = 0";
    $result = $db->query($query);
    $num_result = $result->num_rows;

    $mems = "";
    for ($i = 0; $i < $num_result; $i++) {
        $row = $result->fetch_assoc();
        $mems = $row["userName"] . " " . $mems;
        $query = "update `user` set `getp` = 1 where 'userName` = ".' $row["userName"] ';
        $result = $db->prepare($query);
    }
    echo $mems; 
?>

我想要的是获得状态=1和getp = 0的所有记录,然后在循环内部,对于每一条记录,我想将getp的值更改为1,这是正确的,但不知道哪里出错。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-12 14:26:07

请将更新命令设置为:

代码语言:javascript
复制
$query = "update `user` set `getp` = 1 where `userName` = '". $row["userName"]. "'";
票数 -2
EN

Stack Overflow用户

发布于 2013-08-12 14:27:08

您忘了execute()更新语句..。

另外,请注意,这不是准备报表的正确方式。你必须这样做:

代码语言:javascript
复制
 $query = $db->prepare("update `user` set `getp` = 1 where `userName` = :userName");
 $query->bind_param(':userName',$row["userName"]);
 $result = $query->execute();
票数 2
EN

Stack Overflow用户

发布于 2013-08-12 14:33:07

为什么要在for循环中这样做?你可以直接做UPDATE用户SET getp = 1 WHERE state = 1 AND getp = 0;

为$i++循环的时候?为什么不while($row = $result->fetch_assoc()) { ... }

但是,将查询更改为

代码语言:javascript
复制
$query = 'update `user` set `getp` = 1 where userName = "'. $row["userName"] .'"';

别忘了执行它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18189445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档