【发布时间】:2016-10-30 06:52:21
【问题描述】:
我收到了这个错误
Error: 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 '(int) , (int)' at line 2
我在SO上跟进了这个答案
我将 base 和 limit 作为字符串,我想将它们转换为 int。这是我的代码
$category = $_POST['category'];
$base= $_POST['base'];
$limit= $_POST['limit'];
$sql = "SELECT id, name, url
FROM OBJECTS where CATEGORY='$category' limit (int)$base , (int)$limit";
【问题讨论】:
-
PHP 不会在带引号的字符串中插入它,你应该这样做
{(int)$base}带括号,或".(int)$base." -
正如其他人所说,您正在尝试在 mySQL 语句中使用 PHP 转换方法。 mySQL 不明白这一点。要么先在 PHP 中强制转换,然后将其放入 SQL 语句中,要么使用 mySQL 的强制转换运算符。
-
@ArtisiticPhoenix
{(int)$base}将不起作用,因为{必须跟在$之后,以便 PHP 将变量放在那里。 -
@Justinas - 你可能是对的,不过我走在正确的轨道上。我会更新我的答案。顺便说一句,谢谢,我记得你现在提到它。
-
我喜欢在 SQL 语句中编写代码,因为它允许我使用 POST 进行模块化,所有其他答案也很好。
标签: php