在 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
));
最佳答案
- 确保 PDO 处于仿真模式以允许多个参数具有相同名称
- 去掉这个
':user_id' => $user_id
内容。 - 确保 PDO 处于异常模式并且您可以看到 PHP 错误
关于php - concat条件在php pdo中不起作用但在mySQL中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22612369/