PHP:表单POST后出现致命错误

时间:2009-08-25 04:50:30

标签: php

以下代码在提交后在PHP 5.2.9中引发错误,但在原始加载时不会引发错误。 错误:致命错误:只能在第12行的/home/golfcom/public_html/test.php中通过引用传递变量

文件:

<?php
include('connection.php');
$result = $dbc->query("SELECT subdivision FROM Residential");
$search['subdivision'] = array();

while($i = $result->fetch_array()){
    echo $i['subdivision'];
    array_push($search['subdivision'], $y = $i['subdivision']);
}
?>
<form action="test.php" method="post">
<input type='submit' value='search' class='submit' name='search' /></form>

4 个答案:

答案 0 :(得分:1)

只是一个猜测,但也许它与函数内部的赋值操作有关:

array_push($search['subdivision'], $y = $i['subdivision']);

请改为尝试:

$y = $i['subdivision'];
array_push($search['subdivision'], $y);

答案 1 :(得分:1)

想出来。我的主人有register_globals。关闭,如果关闭固定一切。

答案 2 :(得分:0)

忽略这个问题,我得到了不一致的结果。我认为我的主人很不稳定。

答案 3 :(得分:0)

您没有错误控制。您需要检查以下内容:

  • 您的数据库连接正常并已连接
  • 查询没有错误并返回有效结果(即使没有行)
  • 如果查询没有返回,则不要尝试打印行

在循环中,$ y将是LAST行的值,并在每个循环中设置。虽然它不正确,但您可以将代码更改为:

$t = $result->numRows();
while ($row = $result->fetch_array()) {
    $search['subdivision'][] = $row['subdivision'];
}
$lastResult = $search['subdivision'][$t - 1];