Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用foreach php将数据插入sql表_Php_Mysql_Sql Server - Fatal编程技术网

使用foreach php将数据插入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

我有一个表单,它将多个席位发送到一个php文件。我创建了一个foreach循环,将每个座位插入到sql中。由于某种原因,我可以得到所有的信息,我需要发送它,但它不会插入

我不知道这是否与外键有关?但我想做的是显示电子邮件选择了什么座位。我还想在将每个座位发送到sql时禁用它

这是我的输出

    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。然后再次尝试提交。它仍然不起作用。我更新了我的代码,使其看起来也一样。我刚刚更新了代码,看看它是否生成了有用的东西(一个错误将非常有用)。我更新了输出,但代码中没有显示任何有用的东西。我不知道它为什么不起作用。