【发布时间】:2019-09-30 22:41:55
【问题描述】:
突然出现 SQL 语法错误:
突然出现SQL语法错误'你的SQL语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 '-1%'' LIMIT 18446744073709551615' 附近使用正确的语法'
// begin Recordset
$suggestParam__colours = '-1';
if (isset($_GET['suggest1_choice'])) {
$suggestParam__colours = $_GET['suggest1_choice'];
}
$query_colours = sprintf("SELECT colour_name FROM colours WHERE colour_name LIKE '%s'", GetSQLValueString($suggestParam__colours . "%", "text"));
$colours = $autocomplete->SelectLimit($query_colours) or die($autocomplete->ErrorMsg());
$totalRows_colours = $colours->RecordCount();
// end Recordset
【问题讨论】:
-
至少您需要告诉我们 a)
$suggestParam__colours的值,b) GetSQLValueString($suggestParam__colours . "%", "文本”)。 ALSO:看起来你正在使用 ADODb-php? -
您不应使用来自
$_GET或任何其他外部来源的内容,直接复制到您的 SQL 查询字符串中。您应该使用查询参数,它将内容作为参数组合在一起,没有语法错误的风险。见adodb.org/dokuwiki/doku.php?id=v5:reference:connection:prepare