【发布时间】:2012-07-20 20:54:21
【问题描述】:
<?php
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error());
$result = mysql_query("SELECT <column name> FROM <table name>");
$data=array(); // to create an array to store result
while ( $row= mysql_fetch_array( $result ))
{
$data = $row;
}
?>
此查询返回多行结果,例如:
abc
def
ghk
...
...
...
...
...
我的问题是如何更改循环结构,以便将输出值中的每一行一一提供给解析器。
使用上面的代码 sn-p,只有一个输入到解析器。但我希望每一行都被一一提供给解析器。
我找到了解决方案。有用。
<?php
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error());
$result = mysql_query("SELECT <column name> FROM <table name>");
while ( $row= mysql_fetch_array( $result ))
{
echo $row['column name']; // to check does it works fine.
// pass the variable " $row['column name'] " as paramter to parser function it works.
//I have tried it.
}
?>
我使用错误的方式输入数组。最好的方法是将循环内的变量直接传递给解析器函数。然后我们不需要任何外部数组来存储结果。
【问题讨论】:
-
mysql 扩展已过时,即将弃用。新代码应该使用 mysqli 或 PDO,两者都有重要的优势,例如支持准备好的语句。请注意,
or die(mysql_error())不应出现在生产代码中,因为die会破坏 HTML 输出,并且数据库错误消息不应像 discloses too much information 那样向非管理员用户透露。更好的方法是正确实施错误处理。 -
什么解析器?它的输入是什么。你在哪里卡住了。你检查
$row了吗? -
你只是检索数据,输入在哪里?
-
@gkris:JSON 用于数据交换。在这里不相关。