2014-12-03 2 views
0

Я почесал голову с этим, и я не могу понять, что случилосьизбежать двойные кавычки внутри запроса

$result=mysql_query("SELECT * 
        FROM `offers` 
        WHERE 
        (
         type='$tran' && 
         imob='$typeimob' && 
         (
          'str_replace("_"," ",$zone)' 
          LIKE CONCAT('%',area,'%') 
         ) 
        ) 
        ORDER BY `price` DESC 
        LIMIT 0, 50;"); 
    } 

Это внутри PHP. Проблема в том, что мне нужно избегать двойных кавычек внутри str_replace, и я попытался str_replace(\"_\",\" \",$zone), но это не сработает.

Любая идея?

Благодаря

+0

почему бы вам даже не нужно их как двойные кавычки? не можете ли вы использовать одинарные кавычки? почему одна цитата вокруг str_replace? –

+1

Также вы понимаете, что 'str_replace' фактически не будет выполняться внутри строки, независимо от того, какие кавычки используются? – mario

+3

Давайте сделаем это еще лучше и * остановимся *, используя 'mysql_query'. Переключитесь на PDO или MySQLi, затем используйте подготовленный оператор. Таким образом, нет необходимости избегать и беспорядка. –

ответ

0

Вам нужно сцепить вывод str_replace() в вашей строке.

$result=mysql_query(
     "SELECT * 
     FROM `offers` 
     WHERE 
     (
     type='$tran' && 
     imob='$typeimob' && 
     (
      '".str_replace("_"," ",$zone)."' 
      LIKE CONCAT('%',area,'%') 
      ) 
     ) 
     ORDER BY `price` DESC LIMIT 0, 50;"); 

Кстати, если вы используете IDE как Eclipse PDT, эти вещи будут очевидны для вас сразу :)

+0

благодарит человека за решение и за совет Eclipse –

Смежные вопросы