Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
как вставить в табл. запись (Евгений) 24/05/2002 - 20:54:24
      Re: как вставить в табл. запись (Вик) 24/05/2002 - 21:20:34
      Re: как вставить в табл. запись (godfrey) 08/07/2003 - 12:15:58

> Original message text:
> From: Евгений - 24/05/2002 - 20:54:24
> Subject:как вставить в табл. запись
> -----------------
> Как вставить в таблицу запись из скритпта на перл
> Из формы данный передаются в скрипт, кт. в свою очередь должен ставить эти данные в таблицу в БД.
> В додкументации написано
>
> # Create a new table 'foo'. This must not fail, thus we don't
> # catch errors.
> $dbh->do("CREATE TABLE foo (id INTEGER, name VARCHAR(20)");
> # INSERT some data into 'foo'. We are using $dbh->quote() for
> # quoting the name.
> $dbh->do("INSERT INTO foo VALUES (1, " . $dbh->quote "Tim") . ")");
>
> поясните эту строчку, что такое $dbh->quote "Tim"
> Спасибо!
>
>
>


From: Вик - 24/05/2002 - 21:20:34
Subject:как вставить в табл. запись
-----------------
Ой, в этой документации как что напишут :(
Итак, $dbh->quote("...что-то...") это команда, которая расставляет в тексте экранирующие символы. Эти символы экранируют всякие кавычки, символы перевода строк и пр.
Например, занесём в переменную $text следующую строку:
98' год
теперь выполним команду quote над переменной $text:
$text = $dbh->quote($text);

После этого в $text будет содержаться следующая строка:
'98\' год'
Вместе с начальной и конечной кавычкой!!! А кавычка в середине текста теперь имеет перед собой экранирующий символ - косую черту.

Перед тем, как вставлять любой текст в БД нужно над ним обязательно, в 100% случаев выполнять команду quote, иначе такие вставки могут вылиться в большие проблемы, или просто mysql (иногда) будет выдавать сообщение об ошибке.

Надо придерживаться более приличного стиля программирования. Т.е. писать так:
$dbh->do("INSERT INTO foo VALUES (1, " . $dbh->quote "Tim") . ")"); - просто неприлично.

Надо сначала сказать:
$txt = "Tim";
$txt = $dbh->quote($txt);

Затем уже:
$dbh->do("INSERT INTO foo VALUES (1,$txt)");

А ещё полее ясный стиль программирования:
$dbh->do("INSERT INTO foo (id,name) VALUES (1,$txt)");

*все примеры здесь приведены на perl
:)


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
9439



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |