相关疑难解决方法(0)

参考 - 有关PDO的常见问题解答

这是什么?

这是有关PHP数据对象的常见问题列表

为什么是这样?

由于PDO具有常规PHP用户未知的某些功能,因此有关PDO中的预准备语句和错误处理的问题非常频繁.所以,这只是一个可以找到它们的地方.

我该怎么办?

如果您的问题已与此列表密切相关,请在下面找到您的问题并将修复程序应用于您的代码.对其他问题进行简要介绍也是一个好主意,让自己为其他常见陷阱做好准备.

列表

也可以看看

php pdo

50
推荐指数
3
解决办法
7614
查看次数

我可以使用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)

预期结果:数据库中的行数组

实际结果:一个空数组

php mysql pdo prepared-statement

11
推荐指数
1
解决办法
1866
查看次数

标签 统计

pdo ×2

php ×2

mysql ×1

prepared-statement ×1