Php 基本的mysql查询没有结果
我得到一个简单的查询,如下所示:Php 基本的mysql查询没有结果,php,mysql,Php,Mysql,我得到一个简单的查询,如下所示: $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_e
$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'];
}
}
运行这个查询完全没有给我任何东西。没有错误,但同时没有结果。我不知道怎么了,请帮帮我
$result = mysqli_query($query) or die (mysql_error());
需要一个mysqli资源链接以及它的notmysql\u error()
看起来这里可能发生了一些事情:
根据,您应该检查$con
而不是mysqli\u connect\u errno($con)
在您的if
语句中
当遇到连接错误时,您正在调用error函数,但没有打印它
根据,第一个参数应该是数据库连接,第二个参数是查询本身
当查询出错时,您正在调用mysql\u error()
,而您应该调用mysqli\u 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'];
}
}
PHP是区分大小写的,因此有一个很好的变化,即数据库中的列实际上被命名为Email
,然后在选中$row['Email']
时没有结果,因为E
必须是大写
您可以做的是确保在PHP中使用正确的大小写,或者只选择所需的字段。MYSQL不区分大小写,因此如果您执行以下操作,它将起作用
还有一种检查大小写是否正确的好方法:使用var\u dump($row)
(我将其添加到代码中只是为了向您展示)
您的模式是什么样子的?那张表中有数据吗?表users\u t
中有数据。它包含8个不同的列,其中email
是其中之一。您可以在select语句中输入一列或两列您知道有数据的内容,并在while循环中的echo中添加一段文本,以确保您真正进入while循环吗?@Atalon感谢您提到在while循环中添加文本。我使用了Joshua Burns在下面发布的代码,它可以正常工作。我发现了问题:电子邮件地址包含特殊字符,即“@”!查询问题已经解决了,现在只是为了解决这个问题。我很难看出@字符会有什么问题。这是一个非常标准的字符,无论您使用什么编码,都应该支持它。您可以尝试将echo
行替换为var\u dump($row)
查看$row变量中的实际内容。您的代码运行得非常好,问题在于电子邮件地址包含特殊字符。使用您的代码,我可以检索包含普通字母的其他字段(在获取电子邮件地址时是@massing)。我应该更改数据库加密吗?加密无法解决您的问题。。您可以将其编码更改为类似UTF-8的格式,这可能会解决您的问题。我正在使用UTF-8编码和电子邮件列的VARCHAR数据类型,VARCHAR是否支持“@”?@
甚至不是特殊字符,它是ASCII标准的一部分。UTF-8是ASCII标准的扩展。您收到的确切错误是什么?我不认为这是@
字符…刚刚试过,效果很好,结果我在列名上有一个输入错误…我想历史会重演。谢谢你的帮助!
<?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'];
}
}
$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);
}
}