2017-06-06 88 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

你错过了很多事情。 –

相关问题