10

我的代码中出现此错误,我不知道如何解决我的代码:

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

?>

这是错误:

警告:mysqli_query() 期望参数 1 为 mysqli,第 17 行 C:\xampp\htdocs\limitless\connect_to_mysql.php 中给出的资源

我做错了什么?

4

2 回答 2

26

您正在混合mysqlimysql扩展,这是行不通的。

你需要使用

$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比原来的扩展有很多改进mysql,所以建议你使用mysqli.

于 2012-04-15T08:48:37.660 回答
7

您使用了不正确的语法。如果您阅读文档mysqli_query()您会发现它需要两个参数。

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

mysql $link一般是指,建立mysqli连接的资源对象来查询数据库。

所以有两种方法可以解决这个问题

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

或者,使用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());

正如评论中所指出的,请注意使用 die 来获取错误。它可能会在不经意间给查看者一些敏感信息。

于 2012-04-15T08:56:36.117 回答