簡體   English   中英

如何在PHP中將非字符串值傳遞給准備好的語句

[英]How to pass non-string values into a prepared statement in PHP

我下面有幾行代碼用PostgreSQL數據庫上的PHP執行准備好的語句。 但是,它失敗了,因為某些值會自動轉換為字符串,而在我的情況下, uidedu_year應該是整數:

$query = "INSERT INTO education(uid, year, diploma, school, major) 
   VALUES ($1, $2, $3, $4, $5)";
pg_prepare($conn, "my_query", $query);
pg_execute($conn, "my_query", array($_SESSION['uid'], $_POST['edu_year'][$i],
   $_POST['edu_diploma'][$i], $_POST['edu_school'][$i], $_POST['edu_major'][$i]));

有誰知道如何進行這項工作,或者還有另一種更可取的方式來實現這一目標?

您只需要將它們大小寫為整數即可:

pg_execute($conn, "my_query", array((int)$_SESSION['uid'], (int)$_POST['edu_year'][$i], $_POST['edu_diploma'][$i], $_POST['edu_school'][$i], $_POST['edu_major'][$i]));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM