我的PHP代码:
<?php
$servername = "localhost";
$username = "root";
$password = "123asd";
try {
$conn = new PDO("mysql:host=$servername;dbname=bd_actividades", $username, $password);
echo "Connected successfully";
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT pro_nombre FROM act_proyecto");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
echo $result;
}catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
$conn = null;
?>
并显示:
为什么会显示1?
我需要这个(pro_nombre):
我该如何解决这个问题?感谢。
答案 0 :(得分:1)
setFetchMode
返回一个布尔值。这就是打印1
的原因(当你回复它时true
被投射为1
。)
相反,您需要执行$result = $stmt->fetchAll();
(http://php.net/manual/en/pdostatement.fetchall.php)或使用fetch
进行迭代。
答案 1 :(得分:1)
您需要获取结果,只需设置获取模式。
改变这个:
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
echo $result;
对此:
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row) {
echo $row['pro_nombre'];
}
答案 2 :(得分:0)
$result = $sth->fetchAll();
print_r($result);
如果你需要一张桌子
?>
<table border="1" style="width:100%">
<?php foreach($result as $row){ ?>
<tr>
<td> <?php echo $row['pro_nombre'] ?></td>
</tr>
<?php }?>
</table>