Автор Тема: Mysql --gemor )))  (Прочитано 3176 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Perlita

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Mysql --gemor )))
« : 13 Мая 2002, 14:58:55 »
Вот такая странность...

Скрипт переводит некороый файл в mysql базу. Записи имеют тип Text и Char. Записи добавляются строчкой

"INSERT INTO eknb VALUES(\'$X[1]\', \'$X[2]\',\'$X[3]\',\'$X[4]\',\'$X[5]\',\'$X[6]\',\'$X[7]\',\'$X[8]\')";

И все вроде бы работает, но...
если в записи есть символ \\ или \', то такие записи не добавляются.

В чем же дело?

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Mysql --gemor )))
« Ответ #1 : 13 Мая 2002, 15:12:58 »
На Машине Тьюринга далеко не уедешь.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Mysql --gemor )))
« Ответ #2 : 16 Мая 2002, 04:31:51 »
исп. метод quote()
 в исканиях.

Оффлайн Perlita

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Re to all
« Ответ #3 : 18 Мая 2002, 12:48:05 »
Thanx 2 all :)

  • Гость
Mysql --gemor )))
« Ответ #4 : 18 Мая 2002, 17:40:32 »
Можешь сделать так:
$dbh->do("INSERT INTO test VALUES(?,?,?)", undef, 1, 2, 3);
Тогда эскейпить не надо

  • Гость
Not Yet
« Ответ #5 : 22 Мая 2002, 13:00:35 »
Записи добаляются строкой
$dbh->do("INSERT INTO test VALUES (\'$X[1]\',\'$X[2]\',\'$X[3]\');");
нужно эскейтить символы \' \\ _
Метод quote работает, но ничего не эскейпит ))))

  • Гость
Mysql --gemor )))
« Ответ #6 : 22 Мая 2002, 15:04:24 »
#!/usr/bin/perl

use DBI;
my $dbh = DBI->connect("DBI:ExampleP:");
my $test = "\'\'\'\\\\_";
$test = $dbh->quote($test);
print "$test\\n";

Результат -
\'\'\'\'\'\'\'\\_\'
Как видишь \' заменяется на \'\'

Оффлайн Perlita

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
to unregistr
« Ответ #7 : 22 Мая 2002, 16:36:19 »
А что делать, если требуется не менять \' на "  
а занести запись, как она выглядит изначально?

  • Гость
Mysql --gemor )))
« Ответ #8 : 22 Мая 2002, 16:43:10 »
Когда ты будешь делать выборку из Базы Данных то получишь оригинальный вариант без двойных апострофов.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28