php - php mysql中的多行插入错误
问题描述
以下查询中的问题是什么......我经常收到此错误。错误:INSERT INTO Myguests (firstname,lastname,email)VALUES 您的 SQL 语法有误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的 '' 附近使用的正确语法
<?php include("new_db.php");?>
<?php
if(!empty($_POST['f_name'])&&!empty($_POST['l_name'])
&&!empty($_POST['email']))
{ $sql = "INSERT INTO Myguests (firstname,lastname,email)VALUES";
for($i=0;$i<$_POST['num'];$i++){
$first_name = mysqli_real_escape_string($conn,$_POST['f_name'][$i]);
$last_name = mysqli_real_escape_string($conn,$_POST['l_name'][$i]);
$Email = mysqli_real_escape_string($conn,$_POST['email'][$i]);
$sql.="('".$first_name."','".$last_name."','".$Email."')";
}
$sql =rtrim($sql, ',');
if (mysqli_query($conn, $sql)) {
echo "Records Created";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
mysqli_close($conn);
?>
解决方案
我使用了这个创建表语句
CREATE TABLE `Myguests` (
`firstname` varchar(11) ,
`lastname` varchar(11) ,
`email` varchar(11));
而这段代码
<?php
$_POST['f_name'][0] = "john";
$_POST['f_name'][1] = "will";
$_POST['f_name'][2] = "jane";
$_POST['l_name'][0] = "doe";
$_POST['l_name'][1] = "smith";
$_POST['l_name'][2] = "2x";
$_POST['email'][0] = "mail@mail.com";
$_POST['email'][1] = "mail2@mail.com";
$_POST['email'][2] = "mail3@mail.com";
$sql = "INSERT INTO Myguests (firstname,lastname,email) VALUES ";
for($i=0;$i<3;$i++){
$first_name = ($_POST['f_name'][$i]);
$last_name = ($_POST['l_name'][$i]);
$Email = ($_POST['email'][$i]);
$sql.="('".$first_name."','".$last_name."','".$Email."'),";
}
$sql =rtrim($sql, ',');
它起作用了,在添加“,”之后,您是否仍然遇到相同的错误$sql.=
?
推荐阅读
- amazon-cognito - 我想从托管的 ui 中删除注册流程,但希望将其保留在我使用 SDK 的应用程序中。我该怎么做
- node.js - 大家好:我在 nodejs 中启动 Sails 应用程序时遇到问题。任何人都可以提出他们的见解吗?
- php - 当 sql_mode=only_full_group_by 时,在 mysql 中完成 Group By 工作的最佳方法是什么
- css - 无法访问 laravel8 中的公用文件夹
- python - 在 Windows 10 中安装 pycurl 时遇到问题
- python - 增加 addAction 图标大小 PyQt5
- spring - 将 auth 标头传递给 permitAll 路径会引发 401
- amazon-web-services - AWS/Kubernetes - 粘性选项不适用于 TCP 协议
- php - 数组 foreach 或使用 for 循环
- bazel - bazel WORKSPACE 文件的行为不像记录的那样?