php - concat条件在php pdo中不起作用但在mySQL中运行

标签 php mysql pdo concatenation

在 phpmyadmin 上的 mySQL 中,运行以下查询在我的用户搜索中完美运行。

SELECT user_id, fname, lname, email FROM users WHERE fname LIKE '%Scott James%' OR lname LIKE '%Scott James%' OR CONCAT(fname,' ',lname) LIKE '%Scott James%'

但是,如果我尝试在生产环境中通过 php 运行它,它似乎会失败。有人有什么想法吗?

$word = $_REQUEST['search'];

$search_query='SELECT user_id, fname, lname, email FROM users WHERE fname LIKE :search OR lname LIKE :search OR CONCAT(fname,' ',lname) LIKE :search';

$stmt= $conn->prepare($search_query);
$stmt->execute(array(
  ':search'   => '%'.$word.'%',
  ':user_id'   => $user_id 
    ));

最佳答案

  1. 确保 PDO 处于仿真模式以允许多个参数具有相同名称
  2. 去掉这个 ':user_id' => $user_id 内容。
  3. 确保 PDO 处于异常模式并且您可以看到 PHP 错误

关于php - concat条件在php pdo中不起作用但在mySQL中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22612369/

相关文章:

mysql - SQL 日期时间不等于不工作

python - 如何使用python返回mysql查询结果

javascript - jQuery.getJSON() 不工作

php - 编辑 Magento 订单确认电子邮件

php - 如何复制 CakePHP 实体

php - 如何消除 CakePHP 的 "SHOW FULL COLUMNS"查询?

mysql - pdo执行给出错误

php - MySQL按不同日期选择,有日期限制但没有条目

php - 为什么 PHP PDO DSN 是 MySQL 与 PostgreSQL 的不同格式?

php - Laravel Eloquent 方法 updateOrCreate 更新时超出执行时间