如何直接在query()中获取列?
类似的东西:
$userID = _openConnection()->query('SELECT id FROM users WHERE login = "' . admin
. '"', PDO::FETCH_COLUMN, 0);
而不是
$userID = _openConnection()->query('SELECT id FROM users WHERE login = "' . admin
. '"')->fetchColumn();
问题是如果语句没有返回任何内容,调用fetchColumn()会抛出致命错误,我认为如果我在Query()中执行它,我会得到错误。
谢谢!
PS:第一个语句var_dump
object(PDOStatement)#2 (1) { ["queryString"]=> string(42) "SELECT id FROM users WHERE login = "admin"" }
答案 0 :(得分:0)
您对PDO的使用是非常错误的。
链接方法没有意义 - 它会让你的代码变得丑陋。垂直书写,不是水平书写。如果您想缩短代码 - 创建功能:
function fetchCol()
{
global $pdo;
$params = func_get_args();
$query = array_shift($params);
$stmt = $pdo->prepare($query);
$stmt->execute($params);
return $stmt->fetchColumn();
}
以这种方式使用
$pdo = _openConnection(); // do it only ONCE per application
$userID = fetchCol('SELECT id FROM users WHERE login = ?',admin);
这种方法将使您的核心真正简短而有意义且可读。