【发布时间】:2015-07-31 20:52:47
【问题描述】:
我正在尝试使 PDO 查询不仅可以通过整个字符串进行搜索,还可以通过第一个字母或最后一个字母进行搜索。我的问题是我必须采取什么方法来实现这个目标。
我最初的想法是使用通配符和类似以下的东西:
SELECT * FROM idname WHERE field LIKE CONCAT('%', :field , '%')
但是这个选项对我来说不起作用,因为我收到了一个错误:
警告:在**中除以零
警告:第 111 行的 E:\xampp\htdocs\search-contact.php 中除以零
致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 E:\xampp\htdocs\dolche\admin\class\pagination.php:451 中的第 1 行的 'LIMIT 0, 30' 附近使用 堆栈跟踪:# 0 E:\xampp\htdocs\dolche\admin\class\pagination.php(451): PDOStatement->execute() #1 E:\xampp\htdocs\search-contact.php(125): 分页->execute( ) #2 {main} 在第 451 行的 E:\xampp\htdocs\class\pagination.php 中抛出
我的代码广告如下:
try
{
$paginate = new pagination($page, 'SELECT * FROM idname WHERE field LIKE :field', $options);
}
catch(paginationException $e)
{
echo $e;
exit();
}
$paginate->bindValue(':field', $_POST['field'] , PDO::PARAM_STR);
$paginate->execute();
欢迎提出建议?
【问题讨论】:
-
您的查询中缺少
'。错字在这里,还是在你的真实代码中?另外......这个错误究竟来自哪里?任何地方都没有/用于除法。