为什么我得到"警告:mysql_query()期望参数1是字符串,资源给定"?

时间:2015-02-09 17:52:05

标签: php mysql

尝试从MySQL数据库中提取数据时出现以下错误:

  

警告:mysql_query()期望参数1为字符串,资源为

我已经尝试了很多修改来解决问题,但我真的只是猜测问题是什么。

这是我的代码:

// Create connection
$conn = mysql_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysql_connect_error());
}

$sql = "SELECT * FROM doginfo WHERE breed='$dog'";
$result = mysql_query($conn, $sql);

if (mysql_num_rows($result) > 0) {
// output data of each row
    while($row = mysql_fetch_assoc($result)) {
        echo nl2br("Breed: " . $row["breed"] . "\n" . "Size: " .     $row["size"] . "\n" . "Height: " . $row["height"] . "\n" "Weight: " . "\n" . $row["weight"] . "\n" . "Life Expectancy: " . $row["life"] . "\n");
} 
} else {
     echo "No results found!";
}
mysql_close($conn);

1 个答案:

答案 0 :(得分:0)

对于mysql_query(),第一个参数是一个字符串,其中包含要执行的query,而不是连接。该连接用作较新且强烈推荐的mysqli_query()中的第一个参数。

适用于mysql_query()

mixed mysql_query ( string $query [, resource $link_identifier = NULL ] )

适用于mysqli_query()

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

弃用通知: 强烈建议您停止使用mysql_*函数,以支持mysqli_*PDO函数。 mysql_*函数已被弃用,部分原因是它们的SQL注入漏洞。强烈建议您升级到其中一个较新的扩展程序并使用prepared statements来更好地保护您的Web应用程序。