Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Что сделать с PDO?
 
 автор: Eugene77   (04.10.2014 в 11:02)   письмо автору
 
 

Заставляют меня переползать на PDO, а мне кажется, что запутанней в PHP ничего просто нет!
Подскажите хорошую простую обёртку доя PDO, класс или фреймворк!

  Ответить  
 
 автор: psychomc   (04.10.2014 в 11:51)   письмо автору
 
   для: Eugene77   (04.10.2014 в 11:02)
 

О_о и что же в нем запутанного? достаточно только понять как работают методы query, prepare, execute, fetch, fetchAll, fetchColumn, rowCount и всё чтобы начать использовать PDO. пишите сюда какие конкретно вещи вы не понимаете, попробуем разобраться

  Ответить  
 
 автор: Eugene77   (05.10.2014 в 14:25)   письмо автору
 
   для: psychomc   (04.10.2014 в 11:51)
 

Не могу, например, сообразить как на PDO вставить одним запросом сразу 100-200 строк.
Данные приходят через POST или GET и существуют в виде 7 массивов a[], b[], c[], d[] итд. с числовыми индексами, которые одинаковы для тех элементов, которые должны образовывать одну строку.

  Ответить  
 
 автор: psychomc   (05.10.2014 в 15:46)   письмо автору
 
   для: Eugene77   (05.10.2014 в 14:25)
 

очень странно, что возникла такая проблема. элементарно

<?php
$arr 
= [
    
'field1'=>[
        
0=>11=>22=>33=>4,
    ],
    
'field2'=>[
        
0=>101=>112=>123=>13,
    ]
];
$query "INSERT INTO tab (field1, field2) VALUES\n";
$values = [];
$params = [];
foreach (
$arr['field1'] as $key=>$field1) {
    
$field2 $arr['field2'][$key];
    
$values[] = "(?,?)\n";
    
$params[] = $field1;
    
$params[] = $field2;
}
$query .= implode(','$values);
$sth $pdo->prepare($query);
$sth->execute($params);

более того, если не нравится использовать подготовленные запросы, вместо prepare и execute можно использовать метод query и подставлять в него параметры напрямую с помощью метода quote (аля mysql_real_escape_string, только еще и сам добавляет кавычки). хотя лучше использовать prepare/execute. в общему курите мануал

  Ответить  
 
 автор: Eugene77   (05.10.2014 в 16:50)   письмо автору
 
   для: psychomc   (05.10.2014 в 15:46)
 

Вы, вероятно, имели в виду:
$sth->$pdo->execute($params); 
?
Спасибо, что показали мне вариант!
Действительно, код получается достаточно ясный и прозрачный.
Так с вашей помощью, я ещё и пристращусь к этому PDO!

  Ответить  
 
 автор: psychomc   (05.10.2014 в 18:05)   письмо автору
 
   для: Eugene77   (05.10.2014 в 16:50)
 

нет, метод execute содержится в объекте $sth типа PDOStatement. давно уже пора слазить с унылого и устаревшего mysql_ и использоваться современные актуальные решения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования