我知道这可能很简单,但过去几天我搜索了几个小时,我准备跳出我的一层楼。
在php中使用mysqli_或mysql_样式来访问数据一段时间没有运气..从那以后一直在阅读有关PDO的文章,并找到了许多关于如何使用它的教程。我觉得我想要做的事情应该是这么简单,但我已经尝试将我在本网站和其他教程中找到的内容复制到T,但网站仍然没有显示数据。
try {
$conn = new PDO("mysql:host=$hostname; dbname=$userdb", $username, $password);
$conn->exec("SET CHARACTER SET utf8");
$sql = "SELECT * FROM Monday";
$result = $conn->query($sql);
while($row = $result->fetchAll(PDO::FETCH_ASSOC)) {
echo $row['Name'] . '<br />';
}
$conn = null;
}
catch(PDOException $e) {
echo $e->getMessage();
}
基本上,网站将显示第一个之后的所有内容 - &gt;在这种情况下,$ conn-&gt;但没有实际的表数据。
至少从众多网站尝试了大约50种不同的方式,我现在只是迷失了...我猜...
旁注:我在同一站点上有php表单,当提交成功时将数据插入表中,所以我知道我能够连接到db和table以及INSERT,它只是SELECT的问题我可以'得到。
感谢您的帮助
编辑:添加fetchAll
答案 0 :(得分:2)
您在循环中使用方法fetch()
,该方法仅获取结果的下一行。将其替换为fetchAll()
,它应该有效。
有关fetchAll()
方法的更多信息:
http://php.net/manual/en/pdostatement.fetchall.php
出于测试目的,您可以将PDO错误模式设置为PDO::ERRMODE_EXCEPTION
。请参阅:http://php.net/manual/en/pdo.error-handling.php
答案 1 :(得分:0)
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
应该是;
while($row = $result->fetchAll(PDO::FETCH_ASSOC)) {