了解PDO / SQL查询(以及其他一些问题)

时间:2014-07-19 22:06:57

标签: php sql pdo

我对编码并不陌生,但对PHP,PDO和SQL来说并不陌生 - 而且我很难理解查询结构。我有一个有行和五列的表。第一行的第一列(名称)包含值“Arty Fez”。

<?php
$connection = new PDO("mysql:host=localhost;dbname=$db", $username, $password);
$result = $connection->prepare("SELECT * FROM contacts ORDER BY name ASC");
$result->execute;

echo $result->fetch(PDO::FETCH_ASSOC);
?>

我创建一个PDO连接对象,然后准备并执行一个查询。然后我获取(next ??)行并尝试回显生成的数组。这不起作用,我不知道为什么。如何访问表中的数据?我很难理解这个结构背后的想法;一切似乎都很复杂。

作为一个侧面问题,有人会介意解释数据访问方式背后的哲学吗?我理解在动态表中组织数据并引用一些更结构化的结果表的好处,但实际访问所述表中的数据感觉就像探索一些不必要的神秘查询 - 迷宫(但是,我认为这是因为我错过了一些积分组件为什么它按照它的方式完成。)

最终,我将会有一个包含姓名/电子邮件的表格,并在表格中打印出一些html / php-incremental-loop表格。

1 个答案:

答案 0 :(得分:1)

您可能希望使用$result->fetchAll()来获取所有行而无法回显数组,您需要使用print_r来处理数组。用foreach循环遍历它。并使用try catch语句捕获错误。

$connection = new PDO("mysql:host=localhost;dbname=$db", $username, $password);
$result = $connection->prepare("SELECT * FROM contacts ORDER BY name ASC");
try {
    $result->execute;
} catch (PDOException $e) {
    echo $e->getMessage();
}
print_r($result->fetchAll());

http://php.net/manual/en/pdostatement.fetchall.php