【发布时间】:2017-06-30 20:06:56
【问题描述】:
我是 PDO 新手,但似乎不知道如何返回值
$stmt = $pdo->prepare('SELECT * FROM categories WHERE categories_url = ?');
$stmt->execute([$url]);
if($stmt->fetchColumn()>0) {
$row = $stmt->fetch();
echo $row['categories_name'];
echo 'test';
}
“测试”回声正常,但 $row 值不显示。我也试过print_r($row),没有任何显示。我以为我需要使用 fetch() 方法设置 $row 变量,这不对吗?这里有什么问题?
** 更新 **
我删除了 fetchColumn 的 if 语句,它可以工作,这是为什么呢? fetchColumn 方法在 fetch() 之前有没有关系?
如果是的话,只有有结果的情况下如何设置$row变量?
【问题讨论】:
-
fetchColumn会将结果指针移动到下一行,fetch将再次执行此操作,如果您只有 1 个结果,那么 fetch 将不会从fetch获取任何内容。跨度> -
哦!那么如何显示值,只有当有任何结果?
-
if (($row = $stmt->fetch()) != null) { /* show stuff */ }
标签: php mysql pdo prepared-statement