【发布时间】:2022-01-25 17:30:54
【问题描述】:
我在网站上收到以下错误。为此,我在托管服务提供商中创建了票证。它告诉我“您需要编辑选择查询,而不是适合服务器上 mariadb 版本的选择查询。”他们说。
error_log 文件:
[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
script.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
提前感谢您的帮助。
【问题讨论】:
-
(可能)旁注:不要使用字符串插值或连接将值获取到 SQL 查询中。这很容易出错,并且可能使您的程序容易受到 SQL 注入攻击。使用参数化查询。见"How to include a PHP variable inside a MySQL statement" 和"How can I prevent SQL injection in PHP?"。
标签: php sql syntax mariadb mariadb-10.2