php - number - or die mysqli_error
PHP/MySQLi-Error fatal: llamada a una funciĆ³n miembro mysqli_query() en un objeto no objeto (1)
Aquí está mi código:
require "../include/functions.php";
error_reporting(E_ALL);
ini_set(''display_errors'', ''1'');
ConnectWithMySQLiDatabase();
$Cat = addslashes($_POST["Category"]);
$v = $conn->mysqli_query($conn,"SELECT * FROM `categories` WHERE `id`=$Cat");
$vrowi = mysqli_fetch_array($v, MYSQLI_ASSOC);
$url = $conn->real_escape_string($vrowi[''Link'']);
Esto es lo que tengo en functions.php
:
function ConnectWithMySQLiDatabase() {
global $dbhost, $dbuser, $dbpass, $database, $HTTP_SERVER_VARS;
$conn = new mysqli($dbhost, $dbuser, $dbpass, $database);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$conn->set_charset("utf8");
global $conn;
}
Las variables $dbhost, $dbuser, $dbpass, $database,
están configuradas correctamente.
Cuando intento ejecutar mysqli_query recibo el siguiente error:
<b>Fatal error</b>: Call to a member function mysqli_query() on a non-object in <b>/fetch_category_products.php</b> on line <b>19</b><br />
La línea 19 es:
$v = $conn->mysqli_query($conn,"SELECT * FROM `categories` WHERE `id`=$Cat");
¿Puedes decirme dónde está mi error y cómo puedo solucionarlo?
¡Gracias por adelantado!
Ese error surge porque la conexión de la base de datos no funciona; literalmente significa que el valor de $conn
no es un objeto, lo que probablemente significa que no está establecido o configurado en false
porque la conexión falló. Cambie ConnectWithMySQLiDatabase()
para que su última línea no sea global $conn;
pero return $conn;
.
Ahora cambie la forma en que llama a esa función desde ConnectWithMySQLiDatabase();
ser $conn = ConnectWithMySQLiDatabase();
y creo que el problema desaparecerá
OP publicó una actualización después de este cambio, y la confusión se hizo más clara: ahora tienen una conexión MySQLi
, solo deben usar la query
, como esta:
$v = $conn->query("SELECT * FROM `categories` WHERE `id`=$Cat");