mysql php问题:尽管有错误报告(E_ALL)行,但没有错误消息

mysql php问题:尽管有错误报告(E_ALL)行,但没有错误消息,php,mysql,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"&l

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;
  }
?>

在代码中的某个地方(在请求的末尾)有倒单引号和双引号。确保display_error php设置为on(打开)

在代码中的某个地方(请求结束时)有倒单引号和双引号。确保display_error php设置处于启用状态,否则会出现致命错误,因此脚本无法运行,因此无法报告任何错误。 请看这一行:

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

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

在SQL语句中使用$_POST['data']值之前,请先对其进行转义

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

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

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

在SQL语句中使用$\u POST['data']值之前,请先将其转义。如果action.php中出现语法错误,请执行以下操作:


ini\u setini\u-sit在第2行

action.php中出现语法错误:

ini_sit
ini\u setini\u-sit在第2行

ini_sit
一定是

ini_set
)()

一定是

ini_set

)()

好的,首先,这里有一个巨大的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;
    }
}

首先,这里有一个巨大的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;
    }
}

我修好了。但仍然没有结果。该行现在显示:$result=$mysqli->query(“插入到内容(数据)值中(“.”“$\u POST['data']”)。”;养成使用带有语法突出显示的编辑器的习惯,这样就更容易看到这样的错误……如果你查看原始帖子,即使在那里也很明显。我修复了这个问题。但仍然没有结果。行现在显示:$result=$mysqli->query(“插入到内容(数据)值(“$\u POST['data']”)。”;养成使用带有语法突出显示的编辑器的习惯,这样就更容易看到这样的错误……如果你查看原始帖子,即使在那里也很明显。