发送联系表单时出现Mysql错误

时间:2015-07-22 16:07:12

标签: php mysql

我收到了错误

  

警告:mysqli_close()预计在143行/home1/ab61859/public_html/contact.php中给出1个参数0   和

     

警告:无法修改标题信息 - 已在第144行的/home1/ab61859/public_html/contact.php中发送的输出(输出/home1/ab61859/public_html/contact.php:143)

我的PHP代码在http://pastebin.com/4KVr7bg1

我不知道我做错了什么,所以请帮助我 谢谢, ItsMeRomian

1 个答案:

答案 0 :(得分:0)

在以下代码中(来自上面的pastebin链接):

foreach($form_data as $name=>$value)
{
  mysqli_query($db, "UPDATE $mysql_table SET $name='".mysqli_real_escape_string($db, $value)."' WHERE ID=$id") or die('Failed to update table!<br>'.mysqli_error($db));
}
mysqli_close();
header('Location: '.$success_url);
exit;

您需要将连接期间生成的连接或链接句柄放在mysqli_close()语句中,以便它知道要关闭哪一个(即,您可以一次打开多个)。如果您将代码段更改为使用以下行,则关闭错误应该消失。

mysqli_close($db);

一旦关闭错误消失,下一行的重定向标题问题可能会起作用。我说可能是因为如果在发出标题之前发生了其他输出,它将继续失败。仅当网页未生成任何其他非标头输出时,才能成功使用标头。

作为旁注,您可能希望构建一个大型SQL字符串,而不是为返回的每个字段执行数据库更新。然而,这是更多学习和/或未来问题的食物。