语法错误或访问冲突:1064 SQL 语法有错误;


Syntax error or access violation: 1064 You have an error in your SQL syntax;

>我构建了一个搜索表单,用于获取项目的国家/地区:

$location = !empty($country) ? ' AND location='.System::escape($country) : '';
$getproduct = $database->prepare("SELECT * FROM products WHERE title LIKE ? ".$international." ".$auction." AND NOW() < enddate ".$location." ".$condition." ".$category."");

我正在使用一个包含国家/地区的数组的 get 表单,因此国家/地区如下所示:

<option value="United Kingdom">United Kingdom</option>
<option value="United States">United States</option>

但是我收到语法错误:

警告:PDOStatement::execute(): SQLSTATE[42000]:语法错误或 访问冲突:1064 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的正确手册 在 1 行的"Kingdom"附近使用的语法 C:''xampp''htdocs''auction''application''model''ProductModel.php on line 335

感谢弗雷德。

我做了以下工作:

以前:

$location = !empty($country) ? ' AND location='.System::escape($country) : '';

$location = !empty($country) ? " AND location='".System::escape($country)."'" : '';

正如弗雷德提到字符串需要用撇号包裹一样。