Учебник по PHP 4 |
Сколько новых сайтов Вы делаете за год? результаты |
|
Взаимодействие PHP и MySQLВ этом разделе приводятся описания наиболее часто используемых функций, позволяющих работать с MySQL средствами PHP. Замечание SQL может применятся в прикладных программах двумя способами: в виде встроенного SQL и интерфейса программирования приложений (Application Program Interface, API). Первый способ напоминает использование PHP - инструкции SQL размещаются среди кода прикладной программы. В настоящий момент такой стиль не поддерживает ни MySQL ни PHP. Второй подход заключается в том, что программа взаимодействует с СУБД посредством совокупности функций. Именно такой подход используется при взаимодействии PHP и MySQL. mysql_connectresource mysql_connect ([string server [, string username [, string password]]]) Эта функция устанавливает соединение с сервером <?php $dblocation = "localhost"; // Имя сервера $dbuser = "root"; // Имя пользователя $dbpasswd = ""; // Пароль $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) // Если дескриптор равен 0 соединение не установлено { echo("<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>"); exit(); } ?> Переменные <? $dblocation = "localhost"; $dbname = "forum"; $dbuser = "root"; $dbpasswd = ""; ?> mysql_closebool mysql_close ([resource link_identifier]) Эта функция разрывает соединение с сервером MySQL, и возвращает К примеру: // устанавливаем соединение с базой данных $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) { // Выводим предупреждение echo ("<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>"); // Завершаем работу в случае неудачи exit(); } if(mysql_close($dbcnx)) // разрываем соединение { echo("Соединение с базой данных прекращено"); } else { echo("Не удалось завершить соединение"); } mysql_select_dbbool mysql_select_db (string database_name [, resource link_identifier]) Использование этой функции эквивалентно вызову команды <?php // Код соединения с базой данных if (!@mysql_select_db($dbname, $dbcnx)) { echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } ?> Имеет смысл помещать функции для соединения и выбора базы данных в тот же файл (config.php), где объявлены переменные с именами сервера, пользователя и паролем: <?php $dblocation = "localhost"; $dbname = "softtime"; $dbuser = "root"; $dbpasswd = ""; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) { echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } if (!@mysql_select_db($dbname, $dbcnx)) { echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } ?> mysql_queryresource mysql_query (string query) Эта функция применяется для отправки серверу SQL-запросов. Функция возвращает дескриптор запроса
в случае успеха и <?php include "config.php"; $ath = mysql_query("select * from authors;"); if($ath) { $author = mysql_fetch_array($ath); echo "<br>имя = ".$author['name']."<br>"; echo "пароль = ".$author['passw']."<br>"; echo "e-mail = ".$author['email']."<br>"; echo "url = ".$author['url']."<br>"; echo "ICQ = ".$author['icq']."<br>"; echo "about = ".$author['about']."<br>"; echo "photo = ".$author['photo']."<br>"; echo "time = ".$author['time']; } else { echo "<p><b>Error: ".mysql_error()."</b></p>"; exit(); } ?> Результат выполнения показан на следующем рисунке: mysql_fetch_arrayarray mysql_fetch_array (resource result) Эта функция возвращает значения полей в виде ассоциативного массива, в качестве аргумента принимает дескриптор
запроса возвращаемый функцией <?php include "config.php"; $ath = mysql_query("select * from authors;"); if($ath) { // Определяем таблицу и заголовок echo "<table border=1>"; echo "<tr><td>имя</td><td>пароль</td><td>e-mail</td><td>url</td></tr>"; // Так как запрос возвращает несколько строк, применяем цикл while($author = mysql_fetch_array($ath)) { echo "<tr><td>".$author['name']." </td><td>".$author['passw']."   </td><td>".$author['email']." </td><td>". $author['url']." </td></tr>"; } echo "</table>"; } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> Результат показан на следующем рисунке: mysql_resultmixed mysql_result (resource result, int row) С помощью этой функции можно получить доступ к отдельному полю записи. Допустим, нам нужно вывести имя автора, который первым найдется в базе данных. Сделать это можно следующим образом: <?php include "config.php"; $ath = mysql_query("select name from authors;"); if($ath) { echo mysql_result($ath,0,'name'); } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> mysql_fetch_objectobject mysql_fetch_object (resource result) Эта функция возвращает поля записи данных в виде объекта. Ниже приведен пример, в котором с помощью этой
функции из таблицы <?php include "config.php"; $ath = mysql_query("select * from authors;"); if($ath) { while($row = mysql_fetch_object($ath)) { echo "<p>name: ".$row->name."</p>"; echo "<p>url: ".$row->url."</p>"; echo "<p>email: ".$row->email."</p>"; } } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> Результат выполнения показан на следующем рисунке: mysql_fetch_rowarray mysql_fetch_row (resource result) В отличие от функции <?php include "config.php"; $ath = mysql_query("select * from authors;"); if($ath) { while($row = mysql_fetch_row($ath)) { echo "<p>name: ".$row[1]."</p>"; echo "<p>url: ".$row[4]."</p>"; echo "<p>email: ".$row[3]."</p>"; } } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> Результат выполнения этого кода в точности совпадает с приведённым выше.
Если Вам нужна частная профессиональная консультация от авторов многих книг Кузнецова М.В. и Симдянова И.В., добро пожаловать в наш Консультационный Центр SoftTime. |