Categoría: Error

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given

ERROR

SOLUCIÓN: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in

CAUSA

La función mysqli_query esta retornando false por que la sentencia sql está fallando.

SOLUCIÓN

Una vez hecho el mysqli_query() usa mysqli_error() para debugear la sentencia sql y ver que está fallando:

if(!$resultado) {
    var_dump(mysqli_error($link));
    exit;
}

Un ejemplo de como quedaría una consulta:

<?php

$host = 'localhost'; // La dirección de la base de datos, puede ser o un nombre de host o una dirección IP
$username = 'root'; // El usuario de la base de datos
$passwd = ''; // La contraseña del usuario
$dbname = 'demo'; // El esquema predeterminado para realizar las consultas

$link = mysqli_connect($host, $username, $passwd, $dbname);
if (mysqli_connect_errno()) {
    printf("Falló la conexión: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * FROM usuarios";
$resultado = mysqli_query($link, $query);
// Inserta este if
if(!$resultado) {
    var_dump(mysqli_error($link));
    exit;
}

while ($row = mysqli_fetch_assoc($resultado)) {
    printf ("%s (%s)\n", $row["id"], $row["nombre"]);
}

PHP Warning: Xdebug MUST be loaded as a Zend extension

ERROR

PHP Warning: Xdebug MUST be loaded as a Zend extension

Este error lo podemos ver en varias situaciones:

  • Ejecutando php por CLI
  • Instalando composer
  • Actualizando composer

CAUSA

Tenemos xdebug cargado como sin zend_extension

SOLUCIÓN

Cargar la extensión xdebug como zend_extension

1) Abrimos el php.ini
2) Localizamos la siguiente linea donde cargamos la extensión xdebug, en mi caso es la siguiente:

extension=php_xdebug.dll

3) Sustituimos la palabra «extension» por «zend_extension» quedando en mi caso, de las siguiente forma:

zend_extension=php_xdebug.dll

4) Reiniciamos el apache


Warning: mysqli::mysqli(): Access denied for user

ERROR

Warning: mysqli::mysqli(): (HY000/1045): Access denied for user ‘admin’@’localhost’ (using password: YES) in C:\xampp\htdocs\mysql\index.php on line 2

CAUSA

El usuario no existe en la base de datos, o la contraseña del usuario indicado es incorrecta.

SOLUCIÓN

Especificar correctamente el username y el passwd en el constructor de la clase mysqli