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请求。