Php 为什么INSERT会在mysql表中的每个查询下面添加额外的空行?

Php 为什么INSERT会在mysql表中的每个查询下面添加额外的空行?,php,mysqli,Php,Mysqli,我的代码: $conn = mysqli_connect($servername, $username, $password, $database); $n = mysqli_real_escape_string($conn, $_REQUEST['n']); $m = mysqli_real_escape_string($conn, $_REQUEST['m']); $sql = "INSERT INTO wishform (n,m) VALUES ('$n','$m');"; if(m

我的代码:

$conn = mysqli_connect($servername, $username, $password, $database);

$n = mysqli_real_escape_string($conn, $_REQUEST['n']);
$m = mysqli_real_escape_string($conn, $_REQUEST['m']);

$sql = "INSERT INTO wishform (n,m) VALUES ('$n','$m');";

if(mysqli_query($conn, $sql)) {
     echo "Your ID is created successfully!";
} else {
     echo "Error!";
}

mysqli_close($conn);
在表中:

308 Name1 Messege1 309 310 Name2 Messege2 311 312 Name3 Messege3 313 308名称1信息1 309 310名称2信息2 311 312名称3消息3 313
我认为问题在于,您没有检查数据是否提交。 例如,您在PHP文件中按原样编写了此代码,但没有检查用户是否提交了任何数据,并且
$\u REQUEST['n']
$\u REQUEST['m']
不是空的

因此,如果您没有检查是否提交了数据,那么您可能在每次执行页面时都在运行该段代码,并将空数据插入数据库

这里有一个简单的想法让你开始:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    //-- get the data from $_POST array (since we are expecting the data submitted via POST method, otherwise use $_GET array)
    //-- we are trimming any extra spaces
    $n = trim( $_POST['n'] );
    $m = trim( $_POST['m'] );

    if( ! empty( $n ) AND ! empty( $m ) )
    {
        $conn = mysqli_connect($servername, $username, $password, $database);

        $n = mysqli_real_escape_string($conn, $n);
        $m = mysqli_real_escape_string($conn, $m);

        $sql = "INSERT INTO wishform (n,m) VALUES ('$n','$m');";

        if(mysqli_query($conn, $sql)) {
             echo "Your ID is created successfully!";
        } else {
             echo "Error!";
        }

        mysqli_close($conn);
    }
    else
        echo 'No data submitted!';

}

看起来,空行是由另一个代码添加的,如果列n和m设置为NOTNULL,则最好检查并执行insert(如果值不是空的),除非明确需要that@harryn和m设置为不为空。在表单提交中,n和m被设置为必需的*。添加到@splash58所说的内容中;可能是这段代码,但可能会被调用两次,一次是使用空的$\u请求。