【问题标题】:What kind of variable is $row from a mysql fetch?mysql fetch 中的 $row 是什么类型的变量?
【发布时间】:2013-08-22 04:54:08
【问题描述】:

我对这个问题越来越感到沮丧。我正在尝试做一个简单的查询,但它不起作用。这非常简单。我通过帖子发送了一个输入,并且我已经对其进行了测试。 post 变量正在机智地到达。唯一的问题是,当我回显“$row['id']”时,每次都会将一个空白变量传递回我的 html 函数。我创建了一个警报,当我得到 数据回到我的 html 文件中,并且每次都会闪烁一个空白警报。在到达此代码之前,如果 $row 为空并且当我预期它为空时,我将文件回显为“未找到”。当它不为空时,我不能使用存储在关联数组中的变量。是的,“id”绝对存在。我检查了数据库,只有一个“类”行可供测试。

<?php
$tempClass = $_POST["class"];
$tempClassArray = explode("=",$tempClass);
$class = $tempClassArray[1];
$con=mysqli_connect("localhost","root","*****","*******");

// Check connection
if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM classes WHERE className LIKE '%$class%' OR                    
classNumber LIKE '%$class%' OR section LIKE '%$class%'");
while ($row = mysql_fetch_array($result))
{
    echo $row['id'];
}

?>

【问题讨论】:

  • 如何访问 $row 变量?我需要先将其转换为某种东西才能使用它吗? ID 是一个整数。
  • 如果 id 是表中的第一个字段,则使用 printf("printing id %d", $row[0]);否则根据字段 id 的位置使用不同的索引,如 row[1]、row[2]。

标签: php mysql row fetch


【解决方案1】:

您正在使用 mysqli 查询 -

$result = mysqli_query($con, ....);

但尝试使用mysql(不是mysqli)获取

while ($row = mysql_fetch_array($result))

尝试将其更改为mysqli_fetch_array

while ($row = mysqli_fetch_array($result))
{
  echo $row['id'];
}

不小心混淆mysqlmysqli 函数是很常见的

【讨论】:

  • 修复了它。我花了 6 个小时更改代码以找到丢失的“i”。非常感谢。
【解决方案2】:

尝试先打印 $row 变量

print_r($row);

如果只打印“array()”,那么查询可能失败,你也可以尝试 echo 看看是否有错误。

回答题目,mysql_fetch_array 返回一个对应于取出行的数组,并将内部数据指针向前移动。

参考:http://php.net/manual/en/function.mysql-fetch-array.php

ps:我认为这应该去评论部分,但由于我没有足够的声誉,对不起:(

【讨论】:

    【解决方案3】:

    试试这个,虽然它的工作原理和以前一样,但可以试一试

    while ($row = mysql_fetch_assoc($result))
    {
     echo $row['id'];
    }
    

    【讨论】:

    • 我已经尝试过了。 PHP 只是决心让我今天发疯。仍然是一个空的回报。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2020-04-16
    • 2022-11-11
    相关资源
    最近更新 更多