make语句中的mdb2错误,整数= NULL

时间:2011-11-16 12:34:17

标签: php mysql mdb2

尝试在整数字段中插入空值时,我遇到了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!

在那一刻:场地不是空的,它就像一个魅力,即使:cname(文本)仍然是空的,但是当:场地是空的这样我得到一个未定义的错误。所以我想只发生整数字段,我错过了什么?

2 个答案:

答案 0 :(得分:1)

在执行语句之前尝试这个:

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

答案 1 :(得分:0)

我意识到在这种查询中将空值传递给整数字段没有问题。问题是当场地为空时我在$ _POST中再发送一个元素,因此$ _POST中的元素数量与占位符数量不同。

感谢您的帮助!