2017-06-06 200 views
-2

蔭在我的Ubuntu,一個簡單的連接如我的MySQL數據庫,但一大家子在/ var這個錯誤/日誌/ Apache2的/錯誤的PHP搜索引擎的工作。日誌PHP的警告:mysqli_close()預計參數1是mysqli的Linux的

PHP Warning: mysqli_close() expects parameter 1 to be mysqli, null given in /var/www/html/search.php on line 67 

這是我的腳本;

<?php 


define('HOST_DB', 'localhost '); 
define('USER_DB', 'root');   
define('PASS_DB', '123456');   
define('NAME_DB', 'Generic'); 

function conectar(){ 
     global $conexion; 
     $con = mysqli_connect('localhost', 'root', '1q2w3e4r') or die("cannot connect server "); 
     #$conexion = mysql_connect(HOST_DB, USER_DB, PASS_DB) 
     #$conexion = mysqli_connect('localhost', 'root', '1q2w3e4r') 
     # $con = mysqli_connect('localhost', 'root', '1q2w3e4r')or die("cannot connect server "); 
     # or die ('NO SE HA PODIDO CONECTAR AL MOTOR DE LA BASE DE DATOS'); 
     mysqli_select_db($con,'Genetec') or die ('NO SE ENCUENTRA LA BASE DE DATOS ' . NAME_DB); 
     #mysqli_select_db($con, 'Genetec') or die(mysqli_error($con)); 
     #or die ('NO SE ENCUENTRA LA BASE DE DATOS ' . NAME_DB); 
     #or die ('NO SE ENCUENTRA LA BASE DE DATOS ' . mysqli_error()); 
} 
function desconectar(){ 
     global $conexion; 
     mysqli_close($con); 
//  mysqli_close($conexion); 
     //mysqli_close() 
} 


$text = ''; 

$registros = ''; 

if($_POST){ 

    $busqueda = trim($_POST['buscar']); 

    $entero = 0; 

    if (empty($busqueda)){ 
      $texto = 'Búsqueda sin resultados'; 
    }else{ 

      conectar(); 
     mysqli_set_charset('utf8'); // mostramos la información en utf-8 


     // $sql = "SELECT * FROM inventarySPN WHERE id LIKE '%" .$busqueda. "%' ORDER BY id"; 
     $sql = "SELECT * FROM SPN WHERE id LIKE '%" .$busqueda. "%' ORDER BY id"; 

      $resultado = mysqli_query($sql); //Ejecución de la consulta 

      if (mysqli_num_rows($resultado) > 0){ 

       $registros = '<p>HEMOS ENCONTRADO ' . mysqli_num_rows($resultado) . ' registros </p>'; 

       while($fila = mysqli_fetch_assoc($resultado)){ 
       $texto .= $fila['Genetec'] . '<br />'; 
         } 

      }else{ 
          $texto = "NO HAY RESULTADOS EN LA BBDD"; 
      } 

//  mysqli_close($conexion); 
       mysqli_close($con); 
    } 
} 
?> 

<!DOCTYPE html> 
<html lang="es-ES"> 
<head> 
<meta charset='utf-8'> 
<head> 
<body> 
<h1>Buscador <a href="http://webreunidos.es" title="" target="_self"></a></h1> 
<form id="buscador" name="buscador" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> 
    <input id="buscar" name="buscar" type="search" placeholder="Buscar aquí..." autofocus > 
    <input type="submit" name="buscador" class="boton peque aceptar" value="buscar"> 
</form> 
<?php 

echo $registros; 
echo $texto; 
?> 
</body> 
</html> 
這個搜索引擎的ID

並顯示所有表字段。

有人幫我解決這個錯誤

謝謝。

+0

的var_dump $ CON,看看返回 – ThisGuyHasTwoThumbs

+0

除了變量範圍,查詢失敗,沒有被(已給出)拿起回答以下;這就是爲什麼你的代碼要進行錯誤處理。 –

+0

你也爲它使用了錯誤的變量'global $ conexion;' –

回答

0

變量$ con是本地的功能conectar(),所以它不會被看到的代碼的其餘部分可以用

return $con; 

,並完成功能,那麼當你稱呼其爲:

conectar(); 

將其更改爲:

$con = conectar(); 

則應全部正常工作。

0

您的$con變量是函數conectar()的本地變量,因此在函數desconectar()中將無法訪問該變量。使全球性的,所以這將是機器人的功能訪問的

$con=null; 
function conectar(){ 
    $con = mysqli_connect('localhost', 'root', '1q2w3e4r') or die("cannot connect server "); 
    mysqli_select_db($con,'Genetec') or die ('NO SE ENCUENTRA LA BASE DE DATOS ' . NAME_DB); 
} 
function desconectar(){ 
    mysqli_close($con); 
} 
+0

看看'global $ conexion;'和連接變量。你也錯過了一些東西。 –

+0

@ Fred-ii-謝謝,我更新了我的回答 –

-1

mysqli_close($resultado); 

我不能寫評論,由於小於50聲譽嘗試。

+0

你錯過了很多事情。 –

相關問題