2

我不确定“链接”是否是正确的术语,但我要问的是是否可以进行类似于这个 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 来“链接”查询(如果有更好的术语,请纠正我)查询?

4

3 回答 3

8

不幸的是,方法链接仅适用于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();
于 2013-08-14T14:08:59.777 回答
2

你有没有尝试过

$query = $db->query("SELECT username FROM member WHERE userID = 1")->fetch(PDO::FETCH_OBJ);
于 2013-08-14T14:02:55.517 回答
0

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

$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);

您不能在准备好的选择中链接执行。

于 2018-06-21T12:22:34.837 回答