Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс Пример формы HTML <body bgcolor = lightgreen> <h4>Заполните регистрационные данные</h4> <form action = "reg.php" method = “get"> Имя: <br> <INPUT type="text" NAME="username" SIZE="57"> <br> Логин: <br> <INPUT type="text" NAME="userlogin" SIZE="57"> <br> Введите пароль: <br> <INPUT type="password" NAME="userpass" SIZE="57"> <br> Введите пароль еще раз: <br> <INPUT type="password" NAME="userpassconf" SIZE="57"> <br><br> QUERY_STRING = username=%C8%E2%E0%ED%EE%E2+%CF%E5%F2%F0+%D1%E5%F0%E3%E5%E5%E2 <INPUT type="reset" VALUE=Сброс > %E8%F7&userlogin=mylogin&userpass=123&userpassconf=123&Submit <INPUT type="Submit" Name = "Submit" VALUE=Отправить> = %CE%F2%EF%F0%E0%E2%E8%F2%FC </form> </body> Простейший обработчик на языке PHP <html> <body> <h4>Эта страница сгенерирована автоматически</h4> <? printf(“Имя пользователя: %s<br>",$username); printf(“Логин пользователя:%s<br>",$userlogin); printf(“Пароль пользователя:%s<br>",$userpass); ?> </body> </html> Порядок работы с БД в PHP 1. 2. 3. 4. Подключение к СУБД Выбор базы данных Запрос на языке SQL Чтение результатов while (есть записи) Чтение записи 5. Отключение от СУБД Формат функций для работы с БД *SQL_Имя_функции где * - тип сервера БД my – для mysql ms – для MSSQL p – для PostreSQL odbc – для ODBC драйвера Подключение к БД *sql_connect (“Адрес”, [“Логин”], [“Пароль”]) Возвращает идентификатор ссылки при успехе, FALSE при неудаче. Например: $link = mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect"); Выбор БД *sql_select_db (“Имя БД”, [Идентификатор соед.]) Возвращает TRUE при успехе, FALSE при неудаче. Например: if (mysql_select_db(“mydb”,$link)== True) // Выполнение SQL запроса else // Вывод сообщения об ошибке Запрос на SQL *sql_query (“Текст запроса”, [Идентификатор соед.]) Возвращает идентификатор ресурса при успехе, FALSE при неудаче. Например: $result = mysql_query("SELECT * FROM tableUsers WHERE UserName = ‘Иванов’",$link) or die("Invalid query"); Чтение результатов *sql_fetch_array (Идентификатор ресурса) Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет. Например: while ($row = mysql_fetch_array($result)) { printf (“Имя:%s”, $row[“first”]); } Отключение от СУБД *sql_close (Идентификатор ссылки) Возвращает TRUE при успехе, FALSE при неудаче. Например: mysql_close($link); Пример добавления данных в БД <? if (!empty($Submit)) { $link = mysql_connect (“sumi.ustu”,”user”,”123”); mysql_select_db(“ks”,$link); $query="INSERT INTO users(uname,ulogin,upass) VALUES ('$username','$userlogin','$userpass')"; mysql_query($query); mysql_close(); } ?>