簡體   English   中英

在准備語句中出現整數= NULL的mdb2錯誤

[英]mdb2 error with integer = NULL in prepare statement

嘗試在整數字段中插入空值時,mdb2有一個煩人的問題。

$query = $conn->prepare("INSERT INTO enquiries 
    (type, idvenue, cname, fname, lname, phone, email, date, guests, budget, comments) 
    VALUES (:party, :venue, :cname, :fname, :lname, :phone, :email, :ddate, :guests, :budget, :options)", 
    array('integer', 'integer', 'text', 'text', 'text', 'text', 'text', 'datetime', 'integer', 'integer', 'text'),
    MDB2_PREPARE_MANIP); 

$result = $query->execute($_POST);

我的$ _POST數組是:

                                [party] => 2
                                [venue] => 
                                [anyve] => checked
                                [cname] => 
                                [fname] => Javi
                                [lname] => Prieto
                                [phone] => 078087028492
                                [email] => ravenfewejp@gmfweail.com
                                [ddate] => 10/10/2011
                                [guests] => 10
                                [budget] => 15
                                [options] => My party!

在:venue不為空的那一刻,即使:cname(text)仍然為空,它也像一種魅力一樣工作,但是當:venue為空時,我得到一個未定義的錯誤。 所以我想只發生在整數字段上,我想念什么?

在執行語句之前嘗試以下操作:

$_POST['venue'] = (int) $_POST['venue'];

我意識到在這種查詢中將null值傳遞給整數字段沒有問題。 問題是當場所為空時,我在$ _POST中又發送了一個元素,因此$ _POST中的元素數量與占位符數量不同。

謝謝您的幫助!

暫無
暫無

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

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