如何在php中显示我的SQL查询的正确结果?

时间:2015-05-27 21:29:17

标签: php sql database select pdo

我的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;
?>

并显示:

enter image description here

为什么会显示1?

我需要这个(pro_nombre):

enter image description here

我该如何解决这个问题?感谢。

3 个答案:

答案 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>