Ошибка mdb2 с целым числом = NULL в подготовительном операторе - PullRequest
0 голосов
/ 16 ноября 2011

У меня раздражающая проблема с 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!

в тот момент, когда: место не пусто, оно работает как шарм, даже если: имя (текст) все еще пусто, но когда: место пусто, как это, я получаю неопределенную ошибку. Итак, я думаю, что происходит только с целочисленными полями, что я пропускаю?

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

попробуйте это перед выполнением оператора:

$_POST['venue'] = (int) $_POST['venue'];
0 голосов
/ 18 ноября 2011

Я понял, что нет проблем с передачей нулевых значений в целочисленные поля в такого рода запросах. Проблема заключалась в том, что я отправлял еще один элемент в $ _POST, когда место было пустым, поэтому число элементов в $ _POST отличалось от количества заполнителей.

Спасибо за помощь!

...