PHP 5 для начинающих

Печать

-> 'Pads', -> Password(12345), -> 'Brian Reid', -> 'Winger',

-> 'Stickypads@doggies_rugby.com',

-> 'Высококлассный перехватчик мячей.');

Той же цели можно достичь с помощью PHP:fresult = mysql_query("INSERT INTO user VALUES( ... )");

Обычно для вставки значений в таблицу вместо непосредственного указания значений в запросе используются PHP-переменные:

fquery = "INSERT INTO user VALUES(NULL, '$userid',

password('$userpassword'),

'$username', '$userposition', '$useremail', '$userprofile')";

$result = mysql_query($query);

Напомним, что поле usernumber имеет тип AUTO_INCREMENT ------ запрос передает

в это поле NULL, чтобы его значение в каждой новой добавляемой записи было на единицу больше, чем у предыдущей записи.

Иногда возможность получать результирующее значение бывает очень удобной; например, можно сделать так, чтобы сценарий при регистрации нового пользователя показывал ему его регистрационный номер. Автоматически увеличенное число, сгенерированное последним INSERT-запросом, можно получить с помощью функции mysql_insert_id(). Например:

flink_id = db_connect('sample_db');

$result = mysql_query("INSERT INTO user (userid)

VALUES('sphinx')"); $usernumber = mysql_insert_id($link_id); echo "Спасибо. Ваш номер - $usernumber.";

Специальные символы

Как уже отмечалось в главе 9, прежде чем вставлять строковое значение в таблицу базы данных, необходимо экранировать каждую одинарную кавычку в этом значении, в противном случае возникает ошибка. В предыдущей главе приводился пример с вставкой строки "I'm a rugby player'' в поле userprofile типа TEXT. Ввиду того, что эта строка ограничена двойными кавычками, она хорошо вставляется в базу данных как с помощью клиентской программы mysql, так и с помощью PHP. Чтобы заключить эту строку в одинарные кавычки, понадобилось бы экранировать одинарную кавычку, содержащуюся в строке. Рассмотрим несколько примеров:"I'm a PHP developer." Работает.

'I\m a PHP developer.' Тоже работает.

'I'm a PHP developer.' Не работает.

Однако почему приходится учитывать эти различия? Несомненно, лучше всего экранировать все вхождения кавычек, как двойных, так и одинарных ------ в конце концов, в PHP

экранированные кавычки работают как в строковых значениях, ограниченных одинарными кавычками, так и в строковых значениях, ограниченных двойными кавычками. Все зависит от программы. Если поставить обратную косую черту перед одинарной кавычкой в первом примере, то получится следующая строка: "I\'m a PHP developer".