这是有关PHP数据对象的常见问题列表
由于PDO具有常规PHP用户未知的某些功能,因此有关PDO中的预准备语句和错误处理的问题非常频繁.所以,这只是一个可以找到它们的地方.
如果您的问题已与此列表密切相关,请在下面找到您的问题并将修复程序应用于您的代码.对其他问题进行简要介绍也是一个好主意,让自己为其他常见陷阱做好准备.
也可以看看
我正在研究一个动态查询,它使用变量来指定表,字段/列和要搜索的值.我已经让查询在没有变量的情况下按预期工作,在phpMyAdmin(手动输入查询)和代码中通过将变量连接成一个完整的查询.
但是,当我使用bindParam()或bindValue()绑定变量时,它返回一个空数组.
这是我的代码:
function search_db($db, $searchTerm, $searchBy, $searchTable){
try{
$stmt = $db->prepare('
SELECT
*
FROM
?
WHERE
? LIKE ?
');
$stmt->bindParam(1, $searchTable);
$stmt->bindParam(2, $searchBy);
$stmt->bindValue(3, '%'. $searchTerm.'%');
$stmt->execute();
} catch(Exception $e) {
return array();
}
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// database initialization, creates the $db variable
require(ROOT_PATH . "include/database.php");
$matches = search_db($db, 'search term', 'myColumn', 'myTable');
var_dump($matches);
Run Code Online (Sandbox Code Playgroud)
预期结果:数据库中的行数组
实际结果:一个空数组