0

所以我希望能够从 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 上。我不知道它是否有所作为。如果还有您认为必要的信息缺失,请告诉我。谢谢!

4

2 回答 2

7

You need to be using mysql_fetch_assoc() instead of mysql_fetch_row(). mysql_fetch_assoc() returns an associative array of your results. mysql_fetch_row() returns a numerical array.

Please, don't use mysql_* functions in new code. They are no longer maintained and are officially deprecated. See the red box? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.

于 2013-03-30T16:00:56.943 回答
1

Change your code to:-

$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(), as the name implies it will return an associative array (with the column names as keys and the values as the row values).

于 2013-03-30T16:20:17.000 回答