gpt4 book ai didi

php - MySQL 语法错误——但仅针对某些变量

转载 作者:行者123 更新时间:2023-11-30 23:26:44 25 4
gpt4 key购买 nike

所以我正在用 PHP/MySQL 编写一个网站。我有一行适用于通过 $_GET 传递的 4 位数字,但不适用于一位或三位数字。

这是我使用过的代码。

    $planid = $_GET["planid"];
$dbObj->dbQuery = "SELECT * FROM plans WHERE blnWebEnabled='yes' AND planid='$planid'";

使用 var_dump,我已经验证 $planid 是正确的: 字符串(1)“1”而实际的SQL查询语句是正确的: 字符串(60)

SELECT * FROM plans WHERE blnWebEnabled='yes' AND planid='1';

事实上,我已经在 MySQL 控制台中直接输入了完全相同的字符语句,并得出了一条记录,正如预期的那样。但出于某种原因,当它到达浏览器时,它给了我这个错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

我也试过让 SQL 语句说:

SELECT * FROM plans WHERE blnWebEnabled='yes' AND planid=1;

SELECT * FROM plans WHERE blnWebEnabled='yes' AND planid = 1;

SELECT * FROM plans WHERE blnWebEnabled = 'yes' AND planid = '1';

...和其他变体。

疯狂的是它会很乐意接受 4 位数字。我使用的数据库键字段是主键,类型为 int(11)

有人可以帮帮我吗?我气得快要掉头发了!

提前感谢您的宝贵时间!

编辑:来自进一步测试的更多信息 --取出“blnWebEnabled = 'yes'”仍然给出同样的错误。尝试将前导零添加到 $planid 直到它的 strLen 至少为 4 仍然会产生相同的错误,尽管该查询在直接输入 MySQL 控制台时也有效。以下查询通过 PHP 工作得很好:

SELECT * FROM plans WHERE blnWebEnabled='yes' AND planid='1000';

最佳答案

我认为 $planid 是空的。打印 $planid 值并再次检查。

关于php - MySQL 语法错误——但仅针对某些变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927049/

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