Чтение данных из базы данных MySQL
Оператор SELECT используется для чтения данных из таблицы данных:
ВЫБЕРИТЕ имя_столбца(ов) ИЗ имени_таблицы
Мы можем использовать знак * для чтения всех полей в таблице данных:
ВЫБРАТЬ * ИЗ имя_таблицы
Чтобы узнать больше о SQL, посетите наши учебные пособия по SQL.
Использование MySQLi
В следующем примере мы читаем данные столбцов id, firstname и Lastname из таблицы MyGuests базы данных myDB и отображаем их на странице:
Пример (MySQLi — объектно-ориентированный)
<?php $servername = " localhost " ; $username = " username " ; $ password = " password " ; $ dbname = " myDB " ; $conn = новый mysqli ( $servername , $username , $password , $dbname ) // Проверка соединения ; если ( $conn -> ошибка подключения ) { die ( " Ошибка соединения: " . $conn -> connect_error ) } ; $sql = " ВЫБРАТЬ идентификатор, имя и фамилию ИЗ MyGuests " $ result = $ conn -> query ( $sql ) ; ( $result -> num_rows > 0 ) { // выходные данные while ( $row = $result -> fetch_assoc ( ) ) { эхо " id: " . $row [ " id " ] " - Имя : " . $ row [ " имя " ] . " . $row [ " фамилия " ] . " <br> " ; } } еще { эхо « 0 результатов » } $conn -> закрыть ( ) ? >; Приведенный выше код анализируется следующим образом:
Сначала мы настраиваем оператор SQL для чтения трех полей: идентификатор, имя и фамилия из таблицы данных MyGuests. Затем мы используем модифицированный оператор SQL для получения набора результатов из базы данных и присваиваем его скопированной переменной $result.
Функция num_rows() определяет возвращаемые данные.
Если возвращается несколько фрагментов данных, функция fetch_assoc() помещает объединенный набор в ассоциативный массив и выводит его в цикле. while() обрабатывает набор результатов и выводит три значения полей: id, firstname и Lastname.
В следующем примере используется процессно-ориентированный подход MySQLi, и эффект аналогичен приведенному выше коду:
Пример (MySQLi — процедурно-ориентированный)
<?php $servername = " localhost " ; $username = " username " ; $ password = " password " ; $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) // Проверка соединения ; если ( ! $conn ) { die ( " Ошибка соединения: " .mysqli_connect_error ( ) ) } ; $sql = " ВЫБРАТЬ идентификатор, имя и фамилию ИЗ MyGuests " $ result = mysqli_query ( $conn , $ sql ) ; ( mysqli_num_rows ( $result ) > 0 ) { // выходные данные while ( $row = mysqli_fetch_assoc ( $result ) ) { эхо " id: " . $row [ " id " ] " - Имя : " . $ row [ " имя " ] . " . $row [ " фамилия " ] . " <br> " ; } } еще { эхо « 0 результатов » } mysqli_close ( $conn ) ? >; Использование PDO (+ предварительная обработка)
В следующих примерах используются подготовленные операторы.
Выбрали поля идентификатора, имени и фамилии из таблицы MyGuests и поместили их в таблицу HTML:
Пример (PDO)
<?php эхо " <table style='border: Solid 1px black;' > " echo " <tr><th>Идентификатор</th><th>Имя</th><th>Фамилия</th> </tr> " ; ТаблицыРовс простирается РекурсивныйИтераторИтератор { функция __construct ( $it ) { родитель :: __construct ( $it , self :: LEAVES_ONLY ) } ; функция текущий ( ) { возвращаться " <td style='width:150px;
border : 1px Solid Black;'> " .parent :: current ( ) " </td> " ; функция начатьДети ( ) { эхо " <тр > " } функция конецДети ( ) { эхо " </tr> " " n " } } $servername = " localhost " ; $username = " имя пользователя " ; $password = " пароль " ; $dbname = " myDBPDO " ; { $conn = новый PDO ( " mysql:host = $servername ;dbname = $dbname " , $username , $password ) ; $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; $stmt = $conn -> подготовить ( "); ВЫБЕРИТЕ идентификатор, имя, фамилию ИЗ MyGuests " ) ; $stmt -> выполнить ( ) ; // Устанавливаем набор результатов как ассоциативный массив $result = $stmt -> setFetchMode ( PDO :: FETCH_ASSOC ) ( новый ) ; ТаблеРовс ( новый RecursiveArrayIterator ( $stmt -> fetchAll ( ) ) ) как $к => $в ) { эхо $ в ; } поймать ( PDOException $ е ) { эхо « Ошибка : » $e -> getMessage ( ) } ; $конн = ноль эхо ; " </таблица> " ? >