#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. Не сложный, прямо к делу, способный увидеть, чего вам не хватает, и вы никогда не ошибетесь