我有一个简单的PHP代码:PHP MYSQL更新一些记录在while循环
$sql= 'SELECT ID, fb_postid, scheduled FROM `posts` WHERE clicks = "" AND fb_postid !="" AND scheduled < NOW() order by ID ASC LIMIT 10;';
$result = mysqli_query($link, $sql);
print_r($result);
while ($row = mysqli_fetch_assoc($result)) {
$clicks=fbcall($fbtoken, $row['fb_postid']);
$update="UPDATE `posts` SET `clicks`='".$clicks."' WHERE id='".$row['ID']."'";
$result = mysqli_query($link, $update);
print("POSTID: " . $row['fb_postid'] . " - Clicks: " . $clicks ."<br>");
};
MySQL的SELECT会从DB 10行循环遍历While循环线路,会从功能fbcall“点击”和那么应该更新所有10行的值从“点击”到数据库。如果我运行没有更新的代码,我得到10个结果打印,但如果我用mysqli_update运行,我只得到1行更新。任何人有任何想法为什么?
您的代码很容易受到[** SQL注入攻击**](HTTPS://en.wikipedia。组织/维基/ SQL_injection)。你应该使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)准备带有绑定参数的语句,如[**这篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步喷射功能于PHP)。 –
什么'mysqli_error($ link)'在查询中显示?如果您需要真实性,请使用UPDATE –
上的'mysqli_affected_rows()'修正打印错误。谢谢。但没有区别。 – swapfile