记录集中的空值

时间:2011-03-19 17:43:40

标签: php database recordset

我正在尝试从我的数据库中获取数据 - 这是我的代码:

$rs = mysql_query("select * from u_gui where nam='".$nam."'",$db);
$total = mysql_num_rows($rs); // returns 1
if(!$total)
{
    echo "no records found.";
}
echo $rs["data"];

当我获取记录时,我从mysql_num_rows()获得1但是当试图回显实际数据时,我总是得到空白结果.. :(

知道什么是错的?

3 个答案:

答案 0 :(得分:1)

mysql_query返回的结果是一个ressource,为了从该资源获取数据,您需要调用mysql_fetch_array或其他可以解析该资源的mysql_函数。

$rs = mysql_query("select * from u_gui where nam='" . mysql_real_escape_string($nam) . "'",$db);
$total = mysql_num_rows($rs);

if(!$total)
{
    echo "no records found.";
}

$row = mysql_fetch_array($rs);
echo $row["data"];

在旁注中,当您将未经过清理的数据直接放入查询中时(在您的情况下为$nam),请确保先将mysql_real_escape_string应用于该变量。否则,如果您的字符串包含'之类的字符,则会产生sql错误。

答案 1 :(得分:0)

if($total == 0)
{
    echo "no records found.";
}
print_r $rs;

并确保您已连接...

答案 2 :(得分:0)

这可能有助于您更好地理解:

$rs = mysql_query("select * from u_gui where nam='".$nam."'",$db);
$total = mysql_num_rows($rs); // returns 1

if($total > 0)
{
    while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) 
    {
        foreach ($row as $key => $value)
        {   
            echo "$key = $value<br/>";
        }
    }
}