gpt4 book ai didi

php - 声明: UPDATE `blog_posts` SET `visit` = `visit` + 1 WHERE `id` = 14155 ORDER BY id LIMIT 1

转载 作者:行者123 更新时间:2023-11-29 19:42:05 24 4
gpt4 key购买 nike

我有这个 php 代码:

mysqli_query($link, 'UPDATE `blog_posts` SET `visit` = `visit` + 1 WHERE `id` = ' . $postid . ' ORDER BY id LIMIT 1');

在 mysqld.log 中

记录此错误如何解决问题?

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.

声明:

UPDATE `blog_posts` SET `visit` = `visit` + 1 WHERE `id` = 14155 ORDER BY id LIMIT 1

最佳答案

正如错误所述,在 update 语句中使用 limit 子句是一种危险的做法,因为您无法准确预测哪些行将被更新。然而,在这里,你很幸运。假设 id 列确实是一个唯一标识符,对其应用 = 条件最多只会返回一行,因此 limit 1 子句只是多余的,您可以简单地丢弃它:

mysqli_query
($link, 'UPDATE `blog_posts` SET `visit` = `visit` + 1 WHERE `id` = ' . $postid);

强制性说明:
使用字符串操作生成 SQL 语句是一种危险的做法,可能会使您的代码容易受到 SQL 注入(inject)攻击。您应该考虑使用 prepared statement相反。

关于php - 声明: UPDATE `blog_posts` SET `visit` = `visit` + 1 WHERE `id` = 14155 ORDER BY id LIMIT 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41293139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com