所以我希望能够从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上。我不知道它是否有所作为。如果您认为缺少任何信息,请告知我们。谢谢!
答案 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,并使用PDO或MySQLi - 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(),顾名思义它将返回一个关联数组(列名为键,值为行值)。