| | 1, Yukko (?), 16:36, 19/11/2003  [ответить] | +/– |  | В результате боевых испытаний на рабочем сайте выявлены ошибки. Не удваивает одиночную кавычку в начале и в конце слова/фразы, которое надо вставить в запрос.
 Пример:
 INSERT INTO dbo.USERS (UserName,) VALUES (''yukko')
 либо
 INSERT INTO dbo.USERS (UserName,) VALUES ('yukko'')
 Рег будет переписываться.
 |  |  | 
 
 | 2, Yukko (?), 11:59, 13/01/2004  [ответить] | +/– |  | Вот собственно новая редакция рега: <?
 $some_string = "
 SET @idins = REPLACE(CONVERT(nvarchar(50), @myid), '-rrr'','dfj'njd' ) SET @userid = (SELECT ID FROM dbo.USERS WHERE (UserName = 'yuk'ko'))
 ";
 $string =  preg_replace("/(?<=[\(=,]|<>)\s*('.*?')(?=\s*[,\\x29]|\s+where|\s*$|\s+and|\s+or)/sie","my_func('\\0')",$some_string);
 echo nl2br($string);
 function my_func($string)
 {
 $start = strpos($string,"'");
 $end = strrpos($string, "'");
 $begin = substr($string, 0, $start+1);
 $finish = substr($string, $end);
 $middle = substr($string, $start+1,$end-$start-1);
 $string = $begin.str_replace("'","''", $middle).$finish;
 return($string);
 }
 ?>
 |  |  | 
 
|  | | 3, anonim (?), 18:56, 22/04/2011 [^] [^^] [^^^] [ответить] | +/– |  | А чего не сделать проще ? <?php
 $query = "'yuk''ko''10'";
 echo $query;
 echo '
 ';
 $query = preg_replace("/'/","''",$query);
 echo $query;
 echo '
 ';
 $sql = "INSERT INTO dbo.USERS (UserName,) VALUES ('".$query."')";
 echo $sql;
 ?>
 
 |  |  | 
 | 
 
 |