2015-06-25 3 views
0

Я хочу, чтобы вставить 5 llines в моей БД, однако следующегоMultiple вставка с подготовленным заявлением

$qry = $db->prepare('INSERT IGNORE INTO table (foo, bar) VALUES 
    (?,?), 
    (?,?), 
    (?,?), 
    (?,?), 
    (?,?)'); 
$qry->execute(array(
    array($foo1, $bar), 
    array($foo2, $bar), 
    array($foo3, $bar), 
    array($foo4, $bar), 
    array($foo5, $bar) 
)); 

дает мне эту ошибку

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens 

Что я должен сделать, чтобы заставить его работать?

ответ

1

Удалить дополнительные массивы в execute()

$qry = $db->prepare('INSERT IGNORE INTO table (foo, bar) VALUES 
    (?,?), 
    (?,?), 
    (?,?), 
    (?,?), 
    (?,?)'); 
$qry->execute(array(
    $foo1, $bar, 
    $foo2, $bar, 
    $foo3, $bar, 
    $foo4, $bar, 
    $foo5, $bar 
)); 
+0

О боже ... Я также попытался это (который дал мне другую ошибку, что я думал, что я установил с массивами): '$ qry-> Execute (массив ( ($ foo1, $ бар), ($ foo2, $ бар), ($ foo3, $ бар), ($ foo4, $ бар), ($ foo5, $ бар) )); ' ... (скобки добавляются по каждой строке $ foo1, $ bar). PHP сводит меня с ума. Спасибо ! –

Смежные вопросы