在PHP中获取查询的空条目

时间:2013-03-30 16:00:04

标签: php mysql sql

所以我希望能够从MySQL获取信息。在我的PHP代码中,我调用查询并以这种方式回显信息:

$sql = "SELECT * FROM `person`";
$rs = $COMMON->executeQuery($sql, $_SERVER["SCRIPT_NAME"]);

while($row = mysql_fetch_row($rs)){
    echo ("Name: ".$row['name']."<br />";
    echo ("Gender: ".$row['gender']."<br />";
    echo ("Age: ".$row['age']."<br />";
};

但是,$row['name']的实际值和其余部分完全是空白的。甚至没有一个空间。但是,当我通过实际的列索引(如$row[1])调用它时,它给了我正确的值。

所以,例如,假设这个表中有三个人。最终结果页面如下所示:

Name: 
Gender: 
Age: 
Name: 
Gender: 
Age:
Name: 
Gender: 
Age:

我做错了什么?为什么它给我这个空字符串而不是查询值?

MySQL数据库保存在MyPHPAdmin上。我不知道它是否有所作为。如果您认为缺少任何信息,请告知我们。谢谢!

2 个答案:

答案 0 :(得分:7)

您需要使用mysql_fetch_assoc()而不是mysql_fetch_row()mysql_fetch_assoc()返回结果的关联数组。 mysql_fetch_row()返回一个数值数组。

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 1 :(得分:1)

将您的代码更改为: -

$sql = "SELECT * FROM `person`";
$rs = $COMMON->executeQuery($sql, $_SERVER["SCRIPT_NAME"]);

while($row = mysql_fetch_assoc($rs)){
echo ("Name: ".$row['name']."<br />";
echo ("Gender: ".$row['gender']."<br />";
echo ("Age: ".$row['age']."<br />";
};

mysql_fetch_assoc(),顾名思义它将返回一个关联数组(列名为键,值为行值)。