PHP Warning: mysqli_query() expects parameter 1 to be mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP Warning: mysqli_query() expects parameter 1 to be mysql

par Sékiltoyai » 03 mai 2007, 16:20

Utilises cette syntaxe :
if($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase))

par L0007 » 03 mai 2007, 15:39

Génial, c'est bien l'erreur des parenthèses.

Merci à tous.

PS: Séki... je crois que je vais pouvaoir fermer l'autre post :lol:

par Sékiltoyai » 03 mai 2007, 15:09

/me slap Sékiltoyai !
grillé :p

par titerm » 03 mai 2007, 15:05

/me slap Sékiltoyai !

par titerm » 03 mai 2007, 15:04

Le message te dit que tu fournis un booleen en param 1.

dans ton code, tu as
if ($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase)>0) 
Essai donc de mettre des parentheses pour t'assurer que dans link tu as bien le retour de mysqli_connect et pas le résulat de mysqli_connect > 0
if (($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase))>0) 
Ou plus clair, tu mets ca sur 2 lignes, c'est pas plus cher et plus lisible
$link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase);
if ($link>0) 

par Sékiltoyai » 03 mai 2007, 15:03

Ton erreur est logique, car tu fais ca :
$link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase)>0
Ce qui revient à assigner à $link non pas la ressource de connexion mais le résultat de l'opération
mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase)>0
Il faut toujours mettre des parenthèses pour ne pas avoir ce genre de problèmes, et ensuite ce n'est pas juste d'utiliser '>0' pour vérifier que la connexion s'est bien faite.
Il vaut mieux préférer ca :
if($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase))
ou pour les perfectionnistes :
if(($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase))!==FALSE)

PHP Warning: mysqli_query() expects parameter 1 to be mysql

par L0007 » 03 mai 2007, 14:34

Bonjour,

Je travaille avec WAMP5 1.7.0 en local.

Le test suivant est effectué sur la database mysql de PHPMyAdmin (installée par défaut). J'avais essayé sur d'autres db mais le problème reste le même.

J'ai effectué divers essais avec les fonctions mysql_*() et tout fonctionne correctemment.

Ensuite, j'essaye d'utiliser les fonctions mysqli_*() mais ça ne fonctionne pas.

La connection fonctionne bien.
if ($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase)>0)
Le query pose problème:
$sql2="SELECT name FROM help_category";
$resultat2=mysqli_query($link,"SELECT name FROM help_category");
Je reçoit le message d'erreur suivant:
PHP Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in D:\www\PHP5_Avanc\MySQL\mysqli\mysqliConnection.php on line 19
<?php 
$mysqliserver='localhost';
$mysqlilogin='root';
$mysqlipassword='';
$mysqlidatabase="mysql";
if ($link=mysqli_connect($mysqliserver,$mysqlilogin,$mysqlipassword,$mysqlidatabase)>0)
	echo "Connexion à la base de données ".$mysqlidatabase." réussie!<br>";
else
	echo "Connexion à la base de données ".$mysqlidatabase." impossible!<br>";
$sql2="SELECT name FROM help_category";
$resultat2=mysqli_query($link,"SELECT name FROM help_category");
?>
Je dois modifier quelque chose dans ma config?
J'ai chercher sur le net différentes solutions mais je n'obtiens aucun résultat.

Merci de votre aide