10 votes

Warning : mysqli_query() attend du paramètre 1 qu'il soit mysqli, ressource donnée

J'ai eu cette erreur dans mon code et je ne sais pas comment la résoudre :

<?php
session_start();
include_once"connect_to_mysql.php";

$db_host = "localhost";
// Place the username for the MySQL database here
$db_username = "root"; 
// Place the password for the MySQL database here
$db_pass = "****"; 
// Place the name for the MySQL database here
$db_name = "mrmagicadam";

// Run the actual connection here 
$myConnection= mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql");
mysql_select_db("mrmagicadam") or die ("no database");        
$sqlCommand="SELECT id, linklabel FROM pages ORDER BY pageorder ASC";
$query=mysqli_query($myConnection, $sqlCommand) or die(mysql_error());
$menuDisplay="";

while($row=mysql_fetch_array($query)) {
    $pid=$row["id"];
    $linklabel=$row["linklabel"];
$menuDisplay='<a href="index.php?pid=' .$pid . '">' .$linklabel. '</a><br/>';
}
mysqli_free_result($query);

?>

et c'est une erreur :

Warning : mysqli_query() attend du paramètre 1 qu'il soit mysqli, ressource donnée dans C:\xampp\htdocs\limitless\connect_to_mysql.php à la ligne 17

Qu'est-ce que je fais de mal ?

28voto

F21 Points 7685

Vous mélangez mysqli y mysql qui ne fonctionneront pas.

Vous devez utiliser

$myConnection= mysqli_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql"); 

mysqli_select_db($myConnection, "mrmagicadam") or die ("no database");   

mysqli présente de nombreuses améliorations par rapport à l'original mysql Il est donc recommandé d'utiliser l'extension mysqli .

7voto

Starx Points 38727

Vous utilisez une syntaxe incorrecte. Si vous lisez la documentation mysqli_query() vous constaterez qu'il a besoin de deux paramètres.

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

mysql $link signifie généralement l'objet ressource de la connexion mysqli établie pour interroger la base de données.

Il y a donc deux façons de résoudre ce problème

mysqli_query() ;

$myConnection= mysqli_connect("$db_host","$db_username","$db_pass", "mrmagicadam") or die ("could not connect to mysql"); 
$sqlCommand="SELECT id, linklabel FROM pages ORDER BY pageorder ASC";
$query=mysqli_query($myConnection, $sqlCommand) or die(mysqli_error($myConnection));

Ou, en utilisant mysql_query() (Ceci est maintenant obsolète)

$myConnection= mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql");
mysql_select_db("mrmagicadam") or die ("no database");        
$sqlCommand="SELECT id, linklabel FROM pages ORDER BY pageorder ASC";
$query=mysql_query($sqlCommand) or die(mysql_error());

Comme indiqué dans les commentaires, faites attention à ne pas utiliser die pour obtenir simplement l'erreur. Cela pourrait donner par inadvertance des informations sensibles à l'utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X