0

在尝试在整数字段中插入空值时,我遇到了一个恼人的 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 像这样为空时,我得到一个未定义的错误。所以我想只发生在整数字段上,我错过了什么?

4

2 回答 2

1

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

$_POST['venue'] = (int) $_POST['venue'];
于 2011-11-16T12:37:19.670 回答
0

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

谢谢您的帮助!

于 2011-11-18T16:15:07.983 回答