Всё про PDO
Все полезные функции про pdo для новичков(и немножко ещё):
//подключение к pdo
$dbhost = 'localhost';
$dbname = 'dbname';
$dbuser = 'dbuser';
$dbpass = 'dbpass';
$dbcharset = 'utf8mb4';
//обязательно делаем исключение(try-catch) для подключения к базе
try { $pdo = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=$dbcharset", "$dbuser", "$dbpass");
} catch (PDOException $e) { die(); }
////////////////////////////////////////////////////
//Подготовленные $sql запросы (для входящих данных)
//Примечание: используется "?" - значит важен порядок передаваемых переменных
//select запросы
$sth = $pdo->prepare("SELECT * FROM user WHERE id = ? AND name = ?");
$sth->execute([$id, $name]);
//result запросы (fetchAll)
$result = $sth->fetchAll();
echo $result[0][1]; //по индекс ключу
echo $result[0]['name']; //или по нейм ключу
//result запросы в цикле из массива от fetchAll
$count = $pdo->query("SELECT COUNT(*) FROM `user`")->fetchColumn(); //колво записей из select запроса
for($i=0; $i<$count; $i++){
echo $result[$i][1]; //по индекс ключу
echo $result[$i]['name']; //или по нейм ключу
}
//update запросы
$sth = $pdo->prepare("UPDATE user SET pass = ? WHERE id = ?");
$sth->execute([$name, $id]);
//insert запросы
$sth = $pdo->prepare("INSERT INTO user SET name = ?, pass = ?");
$sth->execute([$name, $pass]);
///select like запросы
$name = "%$name%";
$stm = $pdo->prepare("SELECT * FROM table WHERE name LIKE ?");
$stm->execute([$name]);
$result = $stm->fetchAll();
///////////////////////////////////////////////////
//Прямые $sql запросы (в которых уверены что нет иньекций)
//альтернатива query = exec(+возвращает еще и колво затронутых запросом строк)
//select запросы
$stmt = $pdo->query("SELECT * FROM user WHERE id = '$id'");
//result запросы (fetchAll) //one love
$result = $stmt->fetchAll();
echo $result[0][1];
echo $result[0]['name'];
//result запросы (fetchColumn)
$result = $stmt->fetchColumn(2); //для одной записи
//result запросы (fetch)
while ($result = $stmt->fetch()){
echo $result['name'];
echo $result[1]; //или по индексу
}
//update запросы
$pdo->query("UPDATE user SET pass='$moon' WHERE id = '$id'");
//delete запросы
$pdo->query("DELETE FROM user WHERE id = '$id'");
//insert запросы
$pdo->query("INSERT INTO user (`name`, `pass`)
VALUES('dfgdg', 'dfgg')");
//id insert запроса
$id_insert = $pdo->lastInsertId();
//колво записей
$count = $pdo->query("SELECT COUNT(*) FROM `user`")->fetchColumn(); //для селект запросов
$count = $stmt->rowCount(); //для других запросов
//вывод ошибок
//если ошибка не выводится: попробуйте вместо Exception - Throwable
try { //любой код который вы хотите проверить
$dbh = new PDO($dsn, $user, $password);
} catch (Exception $e) {
die('Лог ошибки: ' . $e->getMessage());
}
///////////////////////////////////////////////////
//немножко полезной информации которая пригодится
//получение post/get/cookie данных и тд (советую применять к ним фильтр trim)
$id = $_GET["id"];
$id = $_POST["id"];
$user = $_COOKIE["user_name"];
//фильтры/регулярки/проверки которые могут пригодится:
intval($str);
floatval($str); //для чисел с точкой
htmlspecialchars(trim($str)); //для вывода данных из бд
str_replace("n", '<br>', $str);
$name = preg_replace('/[^a-zA-Zа-яА-Я0-9 ]/ui', '', $name);
if(mb_strlen($value) > 10){ }
//начал учить pdo 13.06.2024
//дата создания блога 15.06.2024
//изменено после нескольких замечаний 21.06.2024
//Всем удачи в разработке~
pdo
Рейтинг:
+ 6
- 3
(Плюс
/ Минус
)
Просмотров: 595
Дата: 15 июня 2024, в 2:09
Добавил: Kira Schwarz
Авторизируйтесь для просмотра комментариев