似乎这个问题最近才出现在我面前(我不记得以前在类似情况下遇到过这个问题)。使用以下代码,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被取消定义?这只发生在空字符串上。
答案 0 :(得分:1)
我们在聊天中发现这是解决方案:
while (($tmp = $res->fetch_object()->$col)!==null)
即使db中的值为空(空字符串),这也允许进入循环。 while没有输入空值,这导致return语句显示未定义的变量通知。