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

Форум MySQL

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

 

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

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

тема: Обработка строк перед закидыванием их в базу данных
 
 автор: tAleks   (13.09.2006 в 11:36)   письмо автору
 
 

В чем разница между mysql_escape_string и stripslashes? Чем лучше обрабатывать строки перед записью в базу?

   
 
 автор: ec_stasis   (13.09.2006 в 11:52)   письмо автору
 
   для: tAleks   (13.09.2006 в 11:36)
 

Они (примерно) противоположны. Лучше, конечно, mysql_escape_string() - эта функция экранирует специальные символы MySQL(кроме % и _). А еще лучше - mysql_real_escape_string() - она еще берет в расчет каодировку соединения, но может использоваться только, когда это соединение есть - эта функция рекомендуется к использованию вместо mysql_escape_string() разработчиками MySQL и модуля PHP для работы с MySQL.
stripslashes()... короче смотри документацию, там все написано.

   
 
 автор: Trianon   (13.09.2006 в 12:31)   письмо автору
 
   для: tAleks   (13.09.2006 в 11:36)
 

Учитывая, что Вы, вероятно, перепутали addslashes и stripslashes, различия покажет этот скрипт:

<?
function hex($s) { $v unpack('H*'$s); return chunk_split($v[1], 2' '); }
function 
hsd($s) { return  $s 32 '\\x'.hex(chr($s)) : chr($s); }
for(
$sx '',$i 0$i 256$i++)
  
$sx.=chr($i);
    
$sa addslashes($sx);
    
$se mysql_escape_string($sx);
 
?><table border=1><tr><th> char </th><th> addslashes </th><th> mysql_escape_string </th></tr>
 <?
    
for($x $a $e 0$x 256$x++, $a++, $e++) if($sa[$a] == '\\' || $se[$e] == '\\')
    {
        echo 
"<tr><td align=center>".htmlspecialchars(hsd($x))."</td>";
        if(
$sa[$a] == '\\')
            echo 
"<td align=center>".htmlspecialchars("\\".$sa[++$a])."</td>";
        else echo 
"<td> -- no esc -- </td>";
        if(
$se[$e] == '\\')
            echo 
"<td align=center>".htmlspecialchars("\\".$se[++$e])."</td>";
        else echo 
"<td> -- no esc -- </td>";
        echo 
"</tr>";
    }

?></table>

   
Rambler's Top100
вверх

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