我是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';
}
'test'回声确定,但$ row值不显示。我也试过print_r($row)
,没有任何表现。我以为我需要使用fetch()方法设置$ row变量,这不对吗?这有什么不对?
**更新**
我为fetchColumn删除了if语句,它有效,为什么呢?如果fetchColumn方法在fetch()之前出现了吗?
如果是这样,只有在有结果的情况下如何设置$ row变量?
答案 0 :(得分:0)
使用fetch(PDO::FETCH_ASSOC)
,然后按名称访问所需的元素。
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['categories_name'];
}
答案 1 :(得分:-1)
我认为execute需要一个类似
的数组 $sth->execute(array($calories, $colour));
只需按照php.net
上的示例进行操作即可/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
并尝试使用fetchAll,而不是在多行
时获取