|
|
|
| В чем разница между mysql_escape_string и stripslashes? Чем лучше обрабатывать строки перед записью в базу? | |
|
|
|
|
|
|
|
для: tAleks
(13.09.2006 в 11:36)
| | Они (примерно) противоположны. Лучше, конечно, mysql_escape_string() - эта функция экранирует специальные символы MySQL(кроме % и _). А еще лучше - mysql_real_escape_string() - она еще берет в расчет каодировку соединения, но может использоваться только, когда это соединение есть - эта функция рекомендуется к использованию вместо mysql_escape_string() разработчиками MySQL и модуля PHP для работы с MySQL.
stripslashes()... короче смотри документацию, там все написано. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|