【发布时间】:2020-01-16 12:28:11
【问题描述】:
有时我的网站会收到类似主题的错误。 mysql查询有什么问题还是来自我的服务器主机?
任何人都可以在这里查看我的查询吗?是不是不好查询?
这段代码
$stmt = $conn->prepare("
SELECT id,name,description,sort,status,listing_reg_type,listing_per_page,listing_fee,listing_reinvest_fee FROM groups {$gid}
");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
变成这样
$stmt = $conn->prepare("
SELECT id,name,description,sort,status,listing_reg_type,listing_per_page,listing_fee,listing_reinvest_fee FROM groups :gid
");
$stmt->bindParam(':gid', $gid);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
如果我错了,请纠正我?
每次出现此错误时,我都需要联系我的服务器。有人对此有解决方案吗? 感谢您帮助我。
【问题讨论】:
-
查询有什么问题吗?您的脚本对SQL Injection Attack 开放。即使是if you are escaping inputs, its not safe!,您也应该考虑在
MYSQLI_或PDOAPI 中使用prepared parameterized statements,而不是连接值。 但不会导致此错误 -
SMall Point 使用连接值准备查询是 1. 不必要 2. 无法防止 SQL 注入
-
请看我更新的第一篇文章,是这个意思吗?将 mysql SELECT 中的所有 $string 更改为 bind_param?
-
您有多少空闲磁盘空间?磁盘的tmp分区有多少?
标签: mysql sql query-optimization