Недавно я начал изучать PDO, и я получаю проблемы, чтобы понять поведение bindValue и прямой запуск с массивом.Неисправность PDO bindValue и выполнение
$statement = $db->prepare('SELECT * FROM category WHERE `category_name`=?');
$statement->bindValue(1, 'Swimwear'); // It's okey
$statement->execute();
//direct execute with array
$statement->execute(array('Swimwear')); // It's also okey
Но настоящая проблема заключается в том, почему мне не нужно использовать как?
$statement->execute(array(1 => 'Swimwear')); // It's not okey, Not working
Я использую ** 'category_name' =? ** не названный. –
Это неидентифицированные имена, поэтому для их заполнения следует использовать простой массив. Я нахожу, что названные заполнители намного сложнее испортить, вы не ошибетесь, измените порядок некоторых значений, что может быть очень легко сделать, если у вас есть дюжина столбцов для заполнения. – tadman
Но BindValue отлично работает с неименованными: '$ statement-> bindValue (1, 'Swimwear');' –