CREATE TABLE `data` (
`id` int(11) NOT NULL AUTO_INCREMENT,,
`name` varchar(32) DEFAULT NULL,
`year` char(4) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
$dbh = new \PDO(
'mysql:host=localhost;dbname=users;', // DB host & users
'root', // DB USER NAME
'admin' // DB PASSWORD
);
// Первым делом после подключения стоит задать кодировку
$dbh->exec("SET NAMES UTF8");
После этого мы можем выполнять запросы. Выглядит это так:
$stm = $dbh->prepare('INSERT INTO data (`name`, `year`) VALUES (:name, :year)');
$stm->bindValue('name', 'Имя');
$stm->bindValue('year', '1703');
$stm->execute();
Давайте теперь прочитаем данные, которые мы записали. Схема та же, только подготавливаем SELECT-запрос.
$stm = $dbh->prepare('SELECT * FROM `data`');
$stm->execute();
Теперь нужно получить результат.
$allUsers = $stm->fetchAll();
// echo '<pre>';
// var_dump($allUsers);
// echo '</pre>';
foreach ($allUsers as $user) {
echo $user['id'];
echo $user['name'];
echo $user['year'];
}
Если в SELECT-запросе нужно добавить какие-то параметры, то делается это аналогично.
$stm = $dbh->prepare('SELECT * FROM `data` WHERE id = :id');
$stm->bindValue('id', 1);
$stm->execute();
$users = $stm->fetchAll();
var_dump($users);
Главное - всегда используйте биндинг параметров. Не пихайте данные напрямую в запрос - это небезопасно.