链接PHP PDO查询



我不确定"chaining"是否是正确的术语,但我想问的是,是否可以制作类似于MySQLi查询的PDO查询。。。

$sql = mysqli_fetch_object($db->query("SELECT username FROM member WHERE userID = 1");

有了PDO,我只能用这种方式

$sql = $db->query("SELECT username FROM member WHERE userID = 1");
$query = $sql->fetch(PDO::FETCH_OBJ);

是否可以用PDO"连锁"查询(如果有更好的术语,请更正我)?

不幸的是,方法链接仅适用于query()方法,但不适用于准备/执行。

因此,出于这个目的,我建议用一个像这样的小辅助功能来扩展PDO

public function run($sql, $bind = array())
{
    $stmt = $this->prepare($sql);
    $stmt->execute($bind);
    return $stmt;
}

所以你可以像一样使用它

$sql = "SELECT username FROM member WHERE userID = ?";
$name = $db->run($sql, [1])->fetchColumn();

你试过吗

$query = $db->query("SELECT username FROM member WHERE userID = 1")->fetch(PDO::FETCH_OBJ);

您实际上可以链接准备好的插入和更新:

$data = $pdo->prepare('INSERT INTO `data` (data_key, data_value) VALUES (:data_key, :data_value)')->execute($args);
$data = $pdo->prepare('UPDATE `data` SET data_value = :data_value WHERE data_key = :data_key')->execute($args);

不能在准备好的选择中连锁执行。

最新更新