//делаем sql запрос на создание таблицы (id|user|time)
$q = $db->prepare("CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`user` varchar(20) NOT NULL,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ");
//выполняем запрос
$q->execute();
//теперь давайте добавим запись
$q = $db->prepare("INSERT INTO test SET user=? ");
$q->execute(array('имя1'));
/*
в таблице добавилась запись
обратите внимание, что я не использовал никакие функции для фильтрации
(mysql_real_escape_string и подобные), просто обозначит placeholder куда вставить
значение через ?, а потом при execute задал значение массивом
*/
//давайте теперь изменим добавленную запись
//получаем последний добавленный ид
$id = $db->lastInsertId();
//запрос на update
$db->prepare("UPDATE test SET user=? WHERE id=? ")->execute(array("новое ' имя", $id));
/*
Обратите внимание, сейчас я воспользовался цепочкой вызовов ->()->
чтобы не заводить переменную $q как в примерах выше.
Параметры в массиве должны идти в строгом порядке, как в запросе,
действительно, будет нелепо перепутать id и name местами ;)
Даже не смотря на то, что в параметре присутствует кавычка запрос выполянется нормально,
pdo все экранирует самостоятельно.
*/
//если не нравятся ? или хотите изменить порядок, можно заюзать именнованные параметры
$db->prepare("INSERT INTO test SET user=:user ")->execute(array(':user'=>'новый юзер'));
/*
Теперь массив с параметрами не такой безликий как раньше, какой способ задания параметров
выбрать решайте сами
*/
//Ну и напоследок: как извлекать записи
$q = $db->prepare("SELECT * FROM test");
$q->execute();
$data = $q->fetchAll();