使用foreach php将数据插入sql表
我有一个表单,它将多个席位发送到一个php文件。我创建了一个foreach循环,将每个座位插入到sql中。由于某种原因,我可以得到所有的信息,我需要发送它,但它不会插入 我不知道这是否与外键有关?但我想做的是显示电子邮件选择了什么座位。我还想在将每个座位发送到sql时禁用它 这是我的输出使用foreach php将数据插入sql表,php,mysql,sql-server,Php,Mysql,Sql Server,我有一个表单,它将多个席位发送到一个php文件。我创建了一个foreach循环,将每个座位插入到sql中。由于某种原因,我可以得到所有的信息,我需要发送它,但它不会插入 我不知道这是否与外键有关?但我想做的是显示电子邮件选择了什么座位。我还想在将每个座位发送到sql时禁用它 这是我的输出 You are currently in database admin. admin@airways.com 1A 1B 1C Data added successfully. Back to s
You are currently in database admin.
admin@airways.com
1A
1B
1C
Data added successfully.
Back to seating.
这是我的flightselect.php
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
sec_session_start();
if (login_check($mysqli) == true) {
$logged = 'in';
} else {
$logged = 'out';
}
$username = $_SESSION['username'];
echo '<p>You are currently '.$logged. ' database '.$username. '.</p><br>';
$getemail = mysqli_query($mysqli, "SELECT email FROM members WHERE username = '$username' ");
$email = '';
while($gear = mysqli_fetch_array( $getemail )) {
echo $gear['email'];
$email = $gear['email'];
}
echo $gear."<br>";
if(isset($_POST['seatme'])){
if(!empty($_POST['flight'])){
foreach($_POST['flight'] as $key=>$selected){
echo $selected."<br>";
$result = mysqli_query($mysqli, "INSERT INTO seating (seat_id, email, flight_id)
VALUES ('$selected', '$gear', '1' )");
}
}
}
echo "<font color='green'>Data added successfully.";
echo "<br/><a href='user.php'>Back to seating.</a>";
?>
在VALUES关键字后面需要一个括号
if (!mysqli_query($mysqli, "INSERT INTO seating (seat_id, email, flight_id)
VALUES ('$selected', '$gear', '1' )")) {
printf("Error: %s\n", $mysqli->error);
}
您还应该了解准备好的语句,因为它们使您的SQL更安全。请包含代码而不是屏幕截图。您收到了什么错误消息,或者您看到了什么证据表明您的代码不起作用?注意:mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口是PHP 4时代引入mysqli
API时的产物,不应在新代码中使用。警告:使用mysqli
时,应使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。永远不要将$\u POST
,$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能非常有害。奇怪的是,您连续两次执行相同的查询。转换名称和值实际上不会产生不同的表插入;)我只是尝试了你说的,它不起作用,数据没有传递到sql。可能是外键的缘故吗?还是什么?值$selected
在数据库(字段seat_id)上定义为数字,但您试图传递“3B”。我刚刚将sql更改为varchar50。然后再次尝试提交。它仍然不起作用。我更新了我的代码,使其看起来也一样。我刚刚更新了代码,看看它是否生成了有用的东西(一个错误将非常有用)。我更新了输出,但代码中没有显示任何有用的东西。我不知道它为什么不起作用。