2012-04-15 29 views
5

ich diesen Fehler hätte in meinem Code, und ich weiß nicht, wie es meinen Code zu lösen:mysqli_query Warnung: mysqli_query() erwartet Parameter 1 sein Mysqli

<?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); 

?> 

und das ist Fehler:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\limitless\connect_to_mysql.php on line 17

können Sie mir bitte helfen

+0

Tipp: Verwenden Sie die Suchfunktion, um nach der genauen Fehlermeldung zu suchen, die Sie erhalten. Ich kann Ihnen garantieren, dass diese Frage schon oft beantwortet wurde. – deceze

Antwort

23

Sie sind mysqli und mysql Erweiterungen mischen, die nicht funktionieren.

Sie müssen verwenden

$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 viele Verbesserungen gegenüber dem ursprünglichen mysql Erweiterung hat, so wird empfohlen, dass Sie mysqli verwenden.

+2

Oder machen Sie den Sprung zu PDO, die viele Funktionen bietet MySQLi nicht und macht es viel einfacher, SQL Injection zu vermeiden. Außerdem können Sie Objekt-Mapping durchführen (falls Sie kein ORM verwenden möchten, aber die Idee mögen) ... http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the -pros-and-cons –

4

Sie verwenden eine falsche Syntax. Wenn Sie die Dokumente mysqli_query() lesen, werden Sie feststellen, dass es zwei Parameter benötigt.

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

mysql $link bedeutet in der Regel, das Ressourcenobjekt der etablierten Mysqli Verbindung zum Abfragen der Datenbank.

So gibt es zwei Möglichkeiten, dieses Problem zu lösen

Verwendung mysql_query()

$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()); 

Oder 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(mysql_error())         ; 
+0

In Ihrem zweiten Beispiel mischen Sie MySQL und MySQLi-Bibliotheken. Ich habe gehört, dass das in einigen Fällen funktioniert, aber ich stelle mir vor, dass es klug ist, bei nur einem zu bleiben? – halfer

Verwandte Themen