我在一个网站上得到以下错误。我在我的托管提供商中为此原因创建票证。它告诉我"* 您需要编辑选择查询,而不是适合服务器上的mariadb版本的选择查询。*"他们说。
- 错误日志文件:**
[25-Dec-2021 19:50:24 Europe] PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'and dripfeed= 2' at line 1 in /home/user/public_html/script.php:461
Stack trace:
#0 /home/user/public_html/script.php(461): PDO->query('SELECT * FROM o...')
#1 /home/user/public_html/index.php(35): require_once('/home/user/...')
#2 {main}
thrown in /home/user/public_html/script.php on line 461
- 脚本. php文件:**
$dripfeedvarmi = $conn->query("SELECT * FROM demo WHERE user=$user_id and dripfeed=2");
if ($dripfeedvarmi->rowCount())
{
$dripfeedcount = 1;
}
else
{
$dripfeedcount = 0;
}
- 当前数据库版本:**10.2.41-MariaDB-cll-lve
- PHP版本:**7.4.25
- 操作系统:**Linux
预先感谢你的帮助。
2条答案
按热度按时间ltqd579y1#
即使MySQL语法是正确的,也不要写这样的代码。2总是准备好你的查询以保证它的安全!
试试这个例子:
另外,如果您正在存储用户的ID,那么为什么列名不是
user_id
而是user
呢?请保持干净...3pvhb19x2#
您也可以像这样尝试使用
prepare()
和execute()
方法执行查询。