Last active
August 10, 2017 14:04
-
-
Save deuterium7/18e4d45dd474b63ca88271391dccbf34 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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