如何从mysql表中选择多行?

时间:2014-10-29 03:43:19

标签: php mysql pdo

我有一个php脚本应该从表中获取多行,然后将每行作为一个数组包装到另一个数组中。

$comQy = "SELECT * FROM comments WHERE user = '$user' ORDER BY DESC;";
$comSt = $db->prepare($revQy);
$comRes = $comSt->execute();
$coms = $comSt->fetchAll();

稍后在页面中,我尝试回显数组中的一个元素,然后它不起作用但不会返回错误。

<div id="comUser">
<?php echo $coms[0]['user'] ?>
</div>

我感谢所有帮助,如果我在php脚本中犯了一个相当简单的错误,我很抱歉。

3 个答案:

答案 0 :(得分:3)

这可能是

的问题
  • 缺少SQL查询中ORDER BY子句的字段名称
  • 缺少变量声明$revQy
  • 缺少对象变量声明$revSt
  

$ comSt = $ db-&gt; prepare($ revQy);
   $ comRes = $ revSt-&gt; execute();

在开发过程中启用错误报告是一种很好的做法。在脚本的顶部添加这些代码行。

error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('display_startup_errors',1);

答案 1 :(得分:2)

$comQy = "SELECT * FROM comments WHERE user = :user ORDER BY 1 DESC;";
$comSt = $db->prepare($comQy);
$comRes = $comSt->execute(array( 'user' => $user ));

$comSt->setFetchMode(PDO::FETCH_ASSOC);
$coms = $comSt->fetchAll();

答案 2 :(得分:-1)

尝试使用msqli程序方法(我也是新手)

$sql = 'SELECT * FROM comments WHERE user = "'.$user.'" ORDER BY fieldname DESC';
$result = mysqli_query($db_connection, $sql);
while($row = mysqli_fetch_assoc($result)){
    echo $row['user'];
}