道歉应该被视为一个非常基本的问题。请注意我已经使用mysql_query
方法进行了1000次编码,因此我很难进行切换,但我终于做到了。
我的第一个问题
我的第一个问题来自简单地返回选择语句列表
示例:我正在尝试执行:
$sql="Select *From members";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
$name = $row['name'];
}
我已阅读以下SO问题,并尝试实施答案但未成功,
PDO equivalent of mysql_fetch_array
translation mysql_fetch_array to PDO::FETCH_NUM
我现在正在处理一本 PHP书本应该是&#34; 2015/16年度最好的一本&#34; ,这本书说明以下关于上述问题< / em>
我再次尝试了这本书的推荐
<?php
$dsn ='mysql:localhost;dbname:myDB;';
$uname = 'root';
$pword = '';
$db = new PDO($dsn, $uname,$pword);
if($db){
echo'Success';
} else {
echo'error';
}
$sql="SELECT * from members";
$results = $db->query($sql);
foreach($results as $result) {
echo $result['name'];
}
上面的代码给了我一个信息,&#34;成功&#34;因此,我成功连接到我的数据库,但查询返回以下错误:
Invalid argument supplied for foreach()
我发现非常令人沮丧的是,我必须经历这么长的时间才能从简单的select
声明返回结果,并且正在认真考虑回到过去的方式,在那里我将完成我的任务现在,我转向SO社区寻求帮助,最后一次尝试将其做对。任何帮助非常感谢。
答案 0 :(得分:2)
我很惭愧发布这个,但我发现了问题。可能它可能在将来帮助某人。
查询数据库的代码很好。
问题在第1行中有以下内容:
$dsn ='mysql:localhost;dbname:myDB;';
应该阅读
$dsn ='mysql:host=localhost;dbname=myDB;';
If
语句将始终返回echo success
,即使您未连接,也请使用try/catch
吸取的教训: 始终从第1行检查您的代码