Что я могу использовать в php вместо (mysqli_real_escape_string) - PullRequest
0 голосов
/ 08 марта 2019

Я подключился к оракулу с помощью oci_connect и получаю эту ошибку:

Предупреждение: mysqli_real_escape_string () ожидает, что параметр 1 будет mysqli, ресурс указан в

Поэтому я пытаюсь изменить mysqli_real_escape_string() для работы с OCI ...

Вот мой код:

$condition = '';

   $query = explode(" ", $_GET["search"]);
   foreach($query as $text)
   {

        $condition .= "VIDEO_TITLE LIKE '%".mysqli_real_escape_string($connect, $text)."%' OR ";
   }
   $condition = substr($condition, 0, -4);
   $sql_query = "SELECT * FROM TBL_VIDEO WHERE " . $condition;
   $result = oci_parse($connect, $sql_query);
   oci_execute($result);
   if(oci_num_rows($result) > 0)

1 Ответ

1 голос
/ 08 марта 2019

Я использую следующую функцию. Подготовленные высказывания определенно предпочтительнее для большинства, но это хорошая альтернатива:

<?php 
function mysql_escape_mimic($inp) { 
    if(is_array($inp)) 
        return array_map(__METHOD__, $inp); 

    if(!empty($inp) && is_string($inp)) { 
        return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $inp); 
    } 

    return $inp; 
} 

Таким образом, вы бы заменили эту строку:

$condition .= "VIDEO_TITLE LIKE '%".mysqli_real_escape_string($connect, $text)."%' OR ";

с:

$condition .= "VIDEO_TITLE LIKE '%".mysql_escape_mimic($connect, $text)."%' OR ";

Я позаимствовал это здесь: http://php.net/manual/en/function.mysql-real-escape-string.php#101248

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...