空字符串上的PHP MySQLi fetch_object()返回未定义的变量

时间:2011-10-22 21:10:38

标签: php mysql mysqli

似乎这个问题最近才出现在我面前(我不记得以前在类似情况下遇到过这个问题)。使用以下代码,php循环并显示包含MySQL表中值的表单。如果任何值包含空字符串,我会收到以下通知:

Notice: Undefined variable: row in /home/public_html/index.php on line XXX

仅当字符串为空时才会发生。

这是表格代码:

<?php
    for ($i=1; $i<5; $i++) {
      $val = $env->getVal("plan_title_$i,plan_desc_$i,plan_price_$i,plan_link_$i");
    }
?>

getVal代码部分拉动数据:

while ($tmp = $res->fetch_object()->$col) {
  $row[$keys[$i]] = trim((string)$tmp);
  $i++;
}

现在我已经考虑过给列一个空格的默认值,因为这似乎解决了通知问题。然而,这是不可能的,因为它是一个BLOB字段。

如果拉出的值是空字符串,有没有人知道如何防止$ row被取消定义?这只发生在空字符串上。

1 个答案:

答案 0 :(得分:1)

我们在聊天中发现这是解决方案:

while (($tmp = $res->fetch_object()->$col)!==null)

即使db中的值为空(空字符串),这也允许进入循环。 while没有输入空值,这导致return语句显示未定义的变量通知。