Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Экранирование в SQL
 
 автор: MIchail1982   (28.12.2006 в 11:12)   письмо автору
 
 

ПРи добавлении через ПХП с таким кодом
$sql="INSERT INTO $dbtable (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL
,AM,AN,AO,AP,AQ,AR,ASA,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,
BM,BN,BO,BP,BQ,BR,BS,BT)
VALUES ('$arr[0]', '$arr[1]', '$arr[2]', '$arr[3]', '$arr[4]', '$arr[5]', '$arr[6]', '$arr[7]', '$arr[8]', '$arr[9]',
 '$arr[10]', '$arr[11]', '$arr[12]', '$arr[13]', '$arr[14]', '$arr[15]', '$arr[16]', '$arr[17]', '$arr[18]', '$arr[19]',
 '$arr[20]', '$arr[21]', '$arr[22]', '$arr[23]', '$arr[24]', '$arr[25]', '$arr[26]', '$arr[27]', '$arr[28]', '$arr[29]',
 '$arr[30]', '$arr[31]', '$arr[32]', '$arr[33]', '$arr[34]', '$arr[35]', '$arr[36]', '$arr[37]', '$arr[38]', '$arr[39]',
 '$arr[40]', '$arr[41]', '$arr[42]', '$arr[43]', '$arr[44]', '$arr[45]', '$arr[46]', '$arr[47]', '$arr[48]', '$arr[49]',
 '$arr[50]', '$arr[51]', '$arr[52]', '$arr[53]', '$arr[54]', '$arr[55]', '$arr[56]', '$arr[57]', '$arr[58]', '$arr[59]',
 '$arr[60]', '$arr[61]', '$arr[62]', '$arr[63]', '$arr[64]', '$arr[65]', '$arr[66]', '$arr[67]', '$arr[68]', '$arr[69]',
 '$arr[70]', '$arr[71]')";
$result=mysql_query($sql);

не загружаются данные, если в одном из полей есть символ '
типа
INSERT INTO da (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,
AN,AO,AP,AQ,AR,ASA,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,
BP,BQ,BR,BS,BT) VALUES ('DB', '100', '975679', '3', '2', '123', '', 'Организация', '1', '50', '1321354', 'Ф',
'13/03/2002', '28349', '20', '27', '2706300842', 'Ф', '21/03/2002', '1953514411', 'Юрий',
'муштанд'оид', 'рикын', '26/06/1953', 'Ч', 'УКРАЇНА', 'область', '', 'мысто', '61321', '', '', '',
'М.ХАРКІВ', 'важоыва', '38', '', '354', '', '', 'ЁЁ', '01/08/1997', 'валпэвап', '582412', '27', '0', '1',
'01/03/2002', '', '8298', 'ААГ', '64544', '05/04/2002', 'R', 'C', '', 'S', 'P', '', 'F', 'N', '', '', '', '789785',
'26/03/2002', '-1', '29/03/2002', '', '13/04/2002', '237', '26/03/2002')
как мне его экранировать?
вернее автоматизировать экранирование 'муштанд\'оид'

   
 
 автор: MIchail1982   (28.12.2006 в 12:01)   письмо автору
 
   для: MIchail1982   (28.12.2006 в 11:12)
 

Разобрался сам :0))
надо перед
$sql="INSERT INTO $dbtable................
вставить
for ($i=0; $i <= 71; $i++) {$arr[$i] = str_replace("'","\'",$arr[$i]);};

   
 
 автор: elenaki   (28.12.2006 в 12:10)   письмо автору
 
   для: MIchail1982   (28.12.2006 в 12:01)
 

а почему не addslashes()?

   
 
 автор: dagmor   (28.12.2006 в 12:14)   письмо автору
 
   для: MIchail1982   (28.12.2006 в 11:12)
 

попробуйте вот такой код


if (!get_magic_quotes_gpc()) {
    $sql = addslashes($sql);
}

   
 
 автор: MIchail1982   (28.12.2006 в 13:30)   письмо автору
 
   для: dagmor   (28.12.2006 в 12:14)
 

Тогда экранируется каждый слеш и в базу не грузит

разве что так

for ($i=0; $i <= 71; $i++) {if (!get_magic_quotes_gpc()) {
$arr[$i] = addslashes($arr[$i]);
};

   
 
 автор: dagmor   (28.12.2006 в 14:26)   письмо автору
 
   для: MIchail1982   (28.12.2006 в 13:30)
 

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

   
 
 автор: MIchail1982   (28.12.2006 в 22:37)   письмо автору
 
   для: dagmor   (28.12.2006 в 14:26)
 

Нужно экранировать, если в $arr[] присутствует '
иначе не грузится

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования