Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
Php 将select的值放入insert_Php_Html_Mysql_Sql - Fatal编程技术网

Php 将select的值放入insert

Php 将select的值放入insert,php,html,mysql,sql,Php,Html,Mysql,Sql,select的结果总是一行,但当我将select找到的值放入insert查询时,它会给我带来问题。如何从select中提取单个值并将其放入insert查询 -这是一个仅在本地主机上工作的学校项目,安全级别非常基本,我想您正在尝试这样做 $idPrenotazione = $_POST['idPrenotazione']; $data = $_POST['data']; $note= $_POST['note']; $tipologiaConsegna = $_POST['tipologi

select的结果总是一行,但当我将select找到的值放入insert查询时,它会给我带来问题。如何从select中提取单个值并将其放入insert查询


-这是一个仅在本地主机上工作的学校项目,安全级别非常基本,我想您正在尝试这样做

 $idPrenotazione = $_POST['idPrenotazione'];
 $data = $_POST['data'];
 $note= $_POST['note'];
 $tipologiaConsegna = $_POST['tipologiaConsegna']; 

 $emailVolontario = $_POST['emailVolontario'];$sql_emailUtilizzatore = "Select EmailUtilizzatore FROM PrenotazioneCartaceo WHERE IdPrenotazioneCartaceo = $idPrenotazione";

$res= $pdo->query($sql_emailUtilizzatore);


while($row = $res->mysql_fetch_array($res)) {
    
    $var = $row['EmailUtilizzatore'];
}

$sql = "INSERT INTO Consegna (IdConsegna, IdPrenotazioneCartaceo, EmailVolontario,  EmailUtilizzatore, Note, Tipo, DataConsegna) VALUES (0,$idPrenotazione, '$emailVolontario','$var', '$note', '$tipologiaConsegna', '$data')"
但这是危险的
我邀请您看看如何使用

请停止使用这个古老、不安全且不推荐使用的API,了解sql注入以及准备和绑定查询的重要性,并了解您似乎正在使用id恢复电子邮件地址,然后将电子邮件地址存储在
Consegna
表中。当您根据id从
Consegna
检索数据时,使用联接不是更好吗?或者是否需要存储“当前”电子邮件地址以防以后更改?警告:尽可能使用带有占位符值的准备语句,以避免在查询和创建中插入任意数据。在任何用户提供的数据都指定了
:name
指示符的情况下,这些都非常简单,稍后将使用
bind_param
execute
填充指示符,具体取决于您使用的是哪一个指示符。一个好的答案将解释更改的内容和原因,这样,OP和任何未来的读者都可以轻松识别所做的更改,并可能学到一些东西。除此之外,您似乎只是将直接注入替换为串联(OP使用的是有效的语法,因为双引号将变量的值插入字符串)。实际上,您的代码不会与问题中的代码产生任何差异(除了您还引用了ID)。它只是更难读。注意:当链接到资源时,请链接到英文版本。
// retrieve the variables with POST
$idPrenotazione = $_POST['idPrenotazione'];
                     $data = $_POST['data'];
                     $note= $_POST['note'];
                     $tipologiaConsegna = $_POST['tipologiaConsegna']; 

                     $emailVolontario = $_POST['emailVolontario'];
                     // Insert the data into the database
                     $sql_emailUtilizzatore = "Select EmailUtilizzatore FROM PrenotazioneCartaceo WHERE IdPrenotazioneCartaceo = '".$idPrenotazione."'";
                    // run the query
                    $res= $pdo->query($sql_emailUtilizzatore);
                    
                    // the loop that runs through the data
                    while($row = $res->mysql_fetch_array($res)) {
                        
                        $var = $row['EmailUtilizzatore'];
                       echo $var; //to display the data
                    }

                    $sql = "INSERT INTO Consegna (IdConsegna, IdPrenotazioneCartaceo, EmailVolontario,  EmailUtilizzatore, Note, Tipo, DataConsegna) VALUES (0,'".$idPrenotazione."', '".$emailVolontario."','".$var."', '".$note."', '".$tipologiaConsegna."', '".$data."')"