mysql php问题:尽管error_reporting(E_ALL)行没有错误消息

时间:2010-06-15 10:49:26

标签: php mysql

的index.php

<html>
  <head>
    <title>Josh's Online Playground</title>
  </head>
  <body>

    <form method="POST" action="action.php">
      <table>
        <tr>
      <td>"data for stuff"</td>
      <td><input type="text" ?></td>
    </tr>

        <tr>
          <td><input type="submit"></td>
        </tr>
      </table>
    </form>

  </body>
</html>

action.php的

<?php
  error_reporting(E_ALL);
  ini_sit("display_errors", 1);

  $mysqli = new mysqli('localhost', 'root', 'password', 'website');

  $result = $mysqli->query("insert into stuff (data) values ('
        .$_POST['data']
        ."');

  echo $mysqli->error();

  if($result = $mysqli->query("select data from stuff")){
    echo 'There are '.$result->num_rows.' results.';
  }

  while ($row = $result->fetch_object()){
    echo 'stuff' . $row->data;
  }
?>

尽管action.php中有前两行,但我没有收到错误或警告消息。 相反,我在点击提交按钮后会看到一个空白页面。

我是否必须以不同的方式插入数据?

5 个答案:

答案 0 :(得分:3)

你在action.php中有语法错误:

第2行

ini_set 不是 ini_sit

答案 1 :(得分:1)

您有致命错误,因此脚本无法运行,因此无法报告任何错误。 看看这一行:

$result = $mysqli->query("insert into stuff (data) values ('
        .$_POST['data']
        ."');

应阅读:

$result = $mysqli->query("insert into stuff (data) values ('".$_POST['data']."')");

在使用SQL语句

之前转义$ _POST ['data']值

答案 2 :(得分:1)

ini_sit

必须是

ini_set

答案 3 :(得分:0)

您的代码中的某个地方(请求结尾处)有单引号和双引号。确保display_error php设置在

答案 4 :(得分:0)

好的,首先,你有一个庞大的SQL注入漏洞。其次,您没有错误检查。第三,你的报价被错误地嵌套(这将导致致命的错误,这就是你没有看到任何东西的原因)

将其修改为以下内容:

$mysqli = new mysqli('localhost', 'root', 'password', 'website');
if ($mysqli->connecterror) {
    //There was an error connecting, handle it
}

$result = $mysqli->query("insert into stuff (data) values ".
    " ('".$mysqli->real_escape_string($_POST['data'])."')";

if ($result === false) {
    //Query error, handle it
}

此外,您循环访问数据而不检查结果是否有效:

if($result = $mysqli->query("select data from stuff")){
    echo 'There are '.$result->num_rows.' results.';
    while ($row = $result->fetch_object()){
        echo 'stuff' . $row->data;
    }
}