2012-04-15 32 views
5

tôi đã nhận lỗi này trong mã của tôi và tôi không biết làm thế nào để giải quyết nó mã của tôi:mysqli_query cảnh báo: mysqli_query() dự kiến ​​tham số 1 được 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); 

?> 

và đây là lỗi:

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

bạn có thể giúp tôi xin vui lòng

+0

Mẹo: sử dụng tính năng tìm kiếm để tìm kiếm thông báo lỗi chính xác mà bạn đang nhận được. Tôi có thể đảm bảo với bạn câu hỏi này đã được trả lời nhiều lần trước đây. – deceze

Trả lời

23

bạn đang trộn mysqlimysql phần mở rộng, mà sẽ không hoạt động.

Bạn cần phải sử dụng

$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 có nhiều cải tiến so với phần mở rộng gốc mysql, vì vậy nó được khuyến khích mà bạn sử dụng mysqli.

+2

Hoặc thực hiện bước nhảy tới PDO, cung cấp nhiều tính năng mà MySQLi không làm và làm cho nó dễ dàng hơn nhiều để tránh SQL Injection. Thêm vào đó nó cho phép bạn thực hiện ánh xạ đối tượng (trong trường hợp bạn không muốn sử dụng ORM nhưng giống như ý tưởng) ... http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the -pros-and-cons –

4

Bạn đang sử dụng cú pháp không đúng. Nếu bạn đọc tài liệu mysqli_query(), bạn sẽ thấy rằng nó cần hai tham số.

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

mysql $link thường có nghĩa là đối tượng tài nguyên của kết nối mysqli được thiết lập để truy vấn cơ sở dữ liệu.

Vì vậy, có hai cách để giải quyết vấn đề này

Sử dụng 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()); 

Hoặc 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

Trong ví dụ thứ hai của bạn, bạn đang trộn các thư viện MySQL và MySQLi. Tôi đã nghe nói rằng hoạt động trong một số trường hợp, nhưng tôi tưởng tượng nó là khôn ngoan để dính vào chỉ là một? – halfer

Các vấn đề liên quan