Запись данных в базу данных
Форма создана, осталось отправить данные из этой формы в базу данных. Чтобы записать данные в таблицу, используется команда INSERT языка SQL. Например:
mysql> INSERT INTO Artifacts SET title='Петров';Чтобы воспользоваться такой командой (или любой другой командой SQL) в PHP скрипте, существует функция mysql_query().
Синтаксис mysql_query
ресурс mysql_query ( строка query [, ресурс link_identifier])mysql_query() посылает SQL-запрос активной базе данных MySQL сервера, который определяется с помощью указателя link_identifier (это ссылка на какое-то соединение с сервером MySQL). Если параметр link_identifier опущен, используется последнее открытое соединение. Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql_connect() без параметров. Результат запроса буферизируется.
Замечание: строка запроса НЕ должна заканчиваться точкой с запятой.
Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE, если запрос не был выполнен. В остальных случаях mysql_query() возвращает TRUE, если запрос выполнен успешно, и FALSE - в случае ошибки. Значение, не равное FALSE, говорит о том, что запрос был выполнен успешно. Оно не говорит о количестве затронутых или возвращенных рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда. mysql_query() также считается ошибочным и вернет FALSE, если у пользователя недостаточно прав для работы с указанной в запросе таблицей.
В предыдущем примере элементы формы мы назвали именами полей таблицы. Поэтому они будут доступны в скрипте insert.php, обрабатывающем данные формы, как переменные вида:
$_POST['имя_поля'].<?$conn=mysql_connect("localhost","nina","123");// устанавливаем // соединение$database = "book";$table_name = "Artifacts";mysql_select_db($database); // выбираем базу данных$list_f = mysql_list_fields($database,$table_name); // получаем список полей в таблице$n = mysql_num_fields($list_f); // число строк в результате // предыдущего запроса // составим один запрос сразу для всех полей таблицы$sql = "INSERT INTO $table_name SET "; // начинаем создавать // запрос, перебираем все поля таблицыfor($i=0;$i<$n; $i++){ $name_f = mysql_field_name ($list_f,$i); // вычисляем имя поля $value = $_POST[$name_f]; // вычисляем значение поля $j = $i + 1; $sql = $sql . $name_f." = '$value'"; // дописываем в // строку $sql пару имя=значение if ($j <> $n) $sql = $sql . ", "; // если поле не // последнее в списке, то ставим запятую}// перед тем как записывать что-то в базу, // можно посмотреть, какой запрос получился//echo $sql; $result = mysql_query($sql,$conn); // отправляем запрос // выводим сообщение успешно ли выполнен запросif (!$result) echo " Can't add ($table_name) "; else echo "Success!<br>"; ?>Дата добавления: 2016-03-04; просмотров: 553;