преобразование запроса mysql в запрос oracle

#php #mysql #oracle11g

#php #mysql #oracle11g

Вопрос:

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

Предупреждение: mysql_real_escape_string() ожидает, что параметр 1 будет строковым, ресурс указан в D:xampphtdocsadvance_search.php в строке 40

Неустранимая ошибка: вызов неопределенной функции oci_query() в D:xampphtdocsadvance_search.php в строке 44

ошибки..

      <?php  
 $connect = mysqli_connect("localhost", "root", "", "test_db");  
 if(isset($_POST["submit"]))  
 {  
      if(!empty($_POST["search"]))  
      {  
           $query = str_replace(" ", " ", $_POST["search"]);  
           header("location:advance_search.php?search=" . $query);  
      }  
 }  
 ?>  
 <!DOCTYPE html>  
 <html>  
      <head>  
           <title>Webslesson Tutorial | Search multiple words at a time in Mysql php</title>  
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
           <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  
           <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>  
      </head>  
      <body>  
           <br /><br />  
           <div class="container" style="width:500px;">  
                <h3 align="center">Search multiple words at a time in Mysql php</h3><br />  
                <form method="post">  
                     <label>Enter Search Text</label>  
                     <input type="text" name="search" class="form-control" value="<?php if(isset($_GET["search"])) echo $_GET["search"]; ?>" />  
                     <br />  
                     <input type="submit" name="submit" class="btn btn-info" value="Search" />  
                </form>  
                <br /><br />  
                <div class="table-responsive">  
                     <table class="table table-bordered">  
                     <?php  
                     if(isset($_GET["search"]))  
                     {  
                          $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 = mysqli_query($connect, $sql_query);  
                          if(mysqli_num_rows($result) > 0)  
                          {  
                               while($row = mysqli_fetch_array($result))  
                               {  
                                    echo '<tr><td>'.$row["video_title"].'</td></tr>';  
                               }  
                          }  
                          else  
                          {  
                               echo '<label>Data not Found</label>';  
                          }  
                     }  
                     ?>  
                     </table>  
                </div>  
          </div>  
      </body>  
 </html>  
  

Предупреждение: mysqli_real_escape_string() ожидает, что параметром 1 будет mysqli, ресурс, указанный в D:xampphtdocsadvance_search.php в строке 40

Предупреждение: mysqli_query() ожидает, что параметром 1 будет mysqli, ресурс, указанный в D:xampphtdocsadvance_search.php в строке 44

Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, значение null указано в D:xampphtdocsadvance_search.php в строке 45 данные не найдены

что означают эти ошибки?

Комментарии:

1. это работало до подключения базы данных Oracle с помощью <?php $connect = oci_connect(«java01», «java01», «//localhost /xe», «utf8»); if(isset($_POST[«submit»])) { if(!empty($_POST[«search»])) { $query = str_replace(«», » «, $_POST[«search»]); заголовок(«местоположение: advance_search.php?поиск=» . $query); } } ?>

2. Где oci_query call?

3. я советую вам использовать драйвер PDO Oracle , тогда ваш код более надежен на будущее, и ваша кодовая база может работать с несколькими базами данных.. Если SQL-код будет, это другой вопрос.. Вот страница руководства по PDO

4. я не вижу ни одного.. но это отлично работало с mysql db…

5. Call to undefined function oci_query() не произошло бы без этого кода. Вам придется глубже погрузиться в свой код.

Ответ №1:

У меня была та же ошибка, я использовал этот метод для подключения вместо

 <?php   
$db = "(DESCRIPTION = 
    (ADDRESS = 
        (PROTOCOL = TCP)
        (HOST = [host])
        (PORT = [port])) 
    (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = [service_name])))";
    $conn = oci_connect([schema_name], [schema_password], $db);
    if (!$conn) {
    $m = oci_error();
    echo $m['message'], "n";
   exit;
}
else 
    echo 'connected';?>
  

Комментарии:

1. Не сложный, прямо к делу, способный увидеть, чего вам не хватает, и вы никогда не ошибетесь