Skip to content

Instantly share code, notes, and snippets.

@deuterium7
Last active August 10, 2017 14:04
Show Gist options
  • Select an option

  • Save deuterium7/18e4d45dd474b63ca88271391dccbf34 to your computer and use it in GitHub Desktop.

Select an option

Save deuterium7/18e4d45dd474b63ca88271391dccbf34 to your computer and use it in GitHub Desktop.
<?php
ini_set('display_errors', 1);
// ПОДКЛЮЧЕНИЕ К БД
$host = 'localhost';
$db = 'test';
$user = 'root';
$pass = 'root';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$pdo = new PDO($dsn, $user, $pass, $opt); // PDO стандартный класс PHP
// SELECT 1
// $stmt = $pdo->query('SELECT login FROM users'); // query использовать только для работы без переменных php
// while ($row = $stmt->fetch()) { // получаем каждую строку из запроса
// echo $row['login']."<br>";
// }
// SELECT 2
// $stmt = $pdo->prepare('SELECT login FROM users WHERE id > :id'); // подготовка
// $stmt->execute(array('id' => 0)); // подставляем значение в :id
// foreach ($stmt as $row) {
// echo $row['login']."<br>";
// }
// UPDATE 1
// $stmt = $pdo->query('UPDATE users SET bonus = 0');
// UPDATE 2
// $data = array(
// 1 => 3,
// 2 => 5,
// );
// $stmt = $pdo->prepare('UPDATE users SET bonus = bonus + ? WHERE id = ?');
// foreach ($data as $id => $bonus) {
// $stmt->execute([$bonus, $id]);
// }
// SELECT 3 - для одного поля из одной строки
// $stmt = $pdo->query('SELECT login FROM users WHERE id = 1');
// $login = $stmt->fetchColumn();
// echo $login;
// SELECT 4 - вывести массив вида [0=>value1,1=>value2]
// $data = $pdo->query('SELECT login FROM users')->fetchAll(PDO::FETCH_COLUMN);
// var_dump($data);
// SELECT 5 - вывести массив вида [id1=>value1,id2=>value2]
// $data = $pdo->query('SELECT id, login FROM users')->fetchAll(PDO::FETCH_KEY_PAIR);
// var_dump($data);
// SELECT 6 - вывести массив вида [id1=>[option1=>value1,option2=>value2], id2=>[option1=>value1,option2=>value2]]
// $data = $pdo->query('SELECT id, login, password FROM users')->fetchAll(PDO::FETCH_UNIQUE);
// var_dump($data);
// РЕШЕНИЕ ПРОБЛЕМЫ С LIKE
// $login = "%user%";
// $stmt = $pdo->prepare('SELECT * FROM users WHERE login LIKE ?');
// $stmt->execute(array($login));
// $data = $stmt->fetchAll();
// var_dump($data);
// РЕШЕНИЕ ПРОБЛЕМЫ С LIMIT
// $limit_from = 1; // начальная позиция
// $per_page = 2; // сколько взять
// $stmt = $pdo->prepare('SELECT * FROM users LIMIT ?, ?');
// $stmt->bindValue(1, $limit_from, PDO::PARAM_INT);
// $stmt->bindValue(2, $per_page, PDO::PARAM_INT);
// $stmt->execute();
// $data = $stmt->fetchAll();
// var_dump($data);
// РЕШЕНИЕ ПРОБЛЕМЫ С IN (когда не знаешь сколько нужно поставить знаков ?)
// $arr = array(1,2,3);
// $in = str_repeat('?,', count($arr)-1).'?'; // "?,?,?"
// $sql = "SELECT * FROM table WHERE column IN ($in)";
// $stmt = $db->prepare($sql);
// $stmt->execute($arr);
// $data = $stmt->fetchAll();
// var_dump($data);
// ИСПОЛЬЗОВАТЬ ДЛЯ DELETE, КОГДА НЕ НУЖНО НИЧЕГО ВОЗВРАЩАТЬ
// $pdo->exec(string $statement); // вместо prepare
// ГЕНЕРАЦИЯ ССЫЛОК С ОПРЕДЕЛЕННЫМИ ПАРАМЕТРАМИ
$data = $stmt->fetchAll();
foreach ($data as $key => $value) {
?>
<a href="/edit.php?id=<?=$user['id']?>">Редактировать</a>
<?php
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment