Php 将select的值放入insert
select的结果总是一行,但当我将select找到的值放入insert查询时,它会给我带来问题。如何从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
-这是一个仅在本地主机上工作的学校项目,安全级别非常基本,我想您正在尝试这样做
$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."')"