1

我得到一个简单的查询,如下所示:

$con = mysqli_connect("host","username","password","default_database");

if(mysqli_connect_errno($con))
{
    mysqli_connect_error();
}
else
{
    $query = "SELECT * FROM `users_t`";
    $result = mysqli_query($query) or die (mysql_error());
    while($row = mysqli_fetch_assoc($result))
    {
        echo $row['email'];
    }

}

运行这个查询绝对没有给我任何东西。没有错误但同时没有结果。我无法弄清楚什么是错的,请帮助我。

4

3 回答 3

2

看起来这里可能发生了一些事情:

  1. 根据mysqli_connect_errno() 文档,您应该检查!$con而不是mysqli_connect_errno($con)在您的if语句中。
  2. 遇到连接错误时,您正在调用错误函数但不打印它。
  3. 根据mysqli_query() 文档,第一个参数应该是数据库连接,第二个参数是查询本身。
  4. 当查询出错时,您在mysql_error()应该调用时调用mysqli_error(),并将连接传递给它。同样,根据文档

试试这个,看看这是否能解决你的问题:

<?php
$con = mysqli_connect("host","username","password","default_database");

if(!$con) {
  print mysqli_connect_error();
} else {
  $query = "SELECT * FROM `users_t`";
  $result = mysqli_query($con, $query) or die (mysqli_error($con));
  while($row = mysqli_fetch_assoc($result)) {
    echo $row['email'];
  }
}
于 2013-03-21T14:50:45.787 回答
0

PHP 是区分大小写的,所以有一个很好的变化是你在数据库中的列实际上是命名的Email,然后你检查时没有结果$row['email'],因为E必须是大写的。

您可以做的是确保在 PHP 中使用正确的大小写,或者只选择您想要的字段。MYSQL 不区分大小写,因此如果您执行以下操作,它将起作用。

也是检查您是否有正确案例的好方法:使用var_dump($row)(我已将其添加到代码中只是为了向您展示)

$con = mysqli_connect("host","username","password","default_database");

if(mysqli_connect_errno($con))
{
    mysqli_connect_error();
}
else
{
    $query = "SELECT email FROM `users_t`";
    $result = mysqli_query($query) or die (mysql_error());
    while($row = mysqli_fetch_assoc($result))
    {
        echo $row['email'];
        var_dump($row);
    }

}
于 2013-03-21T15:00:27.230 回答
0
$result = mysqli_query($query) or die (mysql_error());

需要一个 mysqli 资源链接,也不需要mysql_error()

if ($result = mysqli_query($con,$query))
{
while($row = mysqli_fetch_assoc($result))
    {
        echo $row['email'];
    } 
}
于 2013-03-21T14:50:26.667 回答