[英]Insert into table doesn't go in Postgres
我創建了一個頁面,將元素插入php中的數據庫。 在開始的時候,我開始使用mySQL,它運行良好。 然后我遷移到Postgres,所以遇到了一些問題。 我更改了代碼,但沒有收到錯誤消息,但是當我嘗試將元素插入數據庫時,該字段仍然為空。
這是我表Prenotazione的結構
CREATE TABLE public."Prenotazione"
(
id integer NOT NULL DEFAULT nextval('"Prenotazione_id_seq"'::regclass),
nominativo character(20),
email character(20),
oggetto character(200),
nominativoi character(200),
nominativoe character(200),
emaili character(200),
emaile character(200),
data date,
orario_inizio time without time zone,
orario_fine time without time zone,
stanza integer
)
這是我的index.php
<form method="post" action="input.php">
<b> Richiedente Conferenza:</b><br><br>
 Nominativo:<br> <input type="text" name="nominativo" placeholder="Nome Cognome" size="20"><br>
 Email: <br>  <input type="email" name="email" size="20" placeholder="email"><br>
 Oggetto Conferenza:<br> <textarea name="oggetto" rows="5" cols="40" placeholder="Specificare oggetto Videoconferenza"></textarea><br>
 Data: <br> <input type="date" name="data" ><br>
 Orario Inizio: <br> <input type="time" name="orario_inizio" min="09:30:00" max="16:30:00" ><br>
 Orario Fine: <br> <input type="time" name="orario_fine" min="10:00:00" max="18:30:00"><br>
<br>
<b> Partecipanti Interni </b>
<br>
<br>
<div id="interni">
<div id="first">
 Nominativo:<br> <textarea name="nominativoi" rows="5" cols="30" placeholder="Nome Cognome;" ></textarea><br>
 Email:<br>  <textarea name="emaili" rows="5" cols="30" placeholder="Inserire Email"></textarea><br>
<br>
<br>
</div>
</div>
<b> Partecipanti Esterni </b>
<div id="esterni">
<div id="first">
 Nominativo:<br> <textarea name="nominativoe" rows="5" cols="30" placeholder="Nome Cognome;" ></textarea><br>
 Email:<br> <textarea name="emaile" rows="5" cols="30" placeholder="Inserire Email"></textarea><br>
<br>
  <input type="submit" value="Invia" >
</form>
最后是input.php
$checkdata = "SELECT count(*) as prenotato
FROM Prenotazione
WHERE data='$data'
AND NOT ('$newTimeEnd' < orario_inizio OR orario_fine < '$orario_inizio')";
$querycheck = $dbh->prepare($checkdata);
$querycheck->execute();
$prenotato = $querycheck->fetch()[0];
var_dump($prenotato);
if ($prenotato == 0 AND $stanza == 0 ) {
$query1 = "INSERT INTO Prenotazione (nominativo,email,data,orario_inizio,orario_fine,oggetto,nominativoi,emaili,nominativoe,emaile,stanza) VALUES ('$nominativo','$email','$data','$orario_inizio','$newTimeEnd','$oggetto','$nominativoi','$emaili','$nominativoe','$emaile',1)";
var_dump($query1);
$result1 = $dbh->prepare($query1);
$result1->execute();
$rex = 1;
}
else if ($prenotato == 1){
$query1 = "INSERT INTO Prenotazione (nominativo,email,data,orario_inizio,orario_fine,oggetto,nominativoi,emaili,nominativoe,emaile,stanza) VALUES ('$nominativo','$email','$data','$orario_inizio','$orario_fine','$oggetto','$nominativoi','$emaili','$nominativoe','$emaile',2)";
$result1 = $dbh->prepare($query1);
$result1->execute();
$rex = 1;
}
我發布了對該問題有趣的部分。 謝謝
var_dump的結果是:
NULL字符串(269)“在Prenotazione中插入(nominativo,email,data,orario_inizio,orario_fine,oggetto,nominativoi,emaili,nominativoe,emaile,節)值('username','email@email.com','2018-10 -03' , '09:30', '12:30', '對象', '用戶名1', 'email1@email1.com', 'USERNAME2', 'EMAIL2 @ email2.com',1)”
問題在於您的表名用雙引號引起來。 不要使用雙引號,也不要在每個請求中都使用雙引號。
您可以在此處驗證代碼:
http://rextester.com/VIEH75483
另請參閱更多: 省略雙引號以在PostgreSQL上進行查詢
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.