php mysql_fetch_array() 期望参数 1 是资源,给定的字符串
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4901728/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
mysql_fetch_array() expects parameter 1 to be resource, string given
提问by Seven
I have two classes DBConnand DBQueries. DBQueriesinherits after DBConn. When I'm going to display all users in users database, I see message:
我有两个班级DBConn和DBQueries. DBQueries之后继承DBConn。当我要显示用户数据库中的所有用户时,我看到消息:
mysql_fetch_array() expects parameter 1 to be resource, string given.
mysql_fetch_array() 期望参数 1 是资源,给定的字符串。感谢您的任何建议。
class DBConn /*extends Config*/ {
public function dbConnection(){
$db_host = 'localhost';
$db_login = 'root';
$db_password = '';
$db_name = "database";
$conn = mysql_connect($db_host, $db_login, $db_password);
$db = mysql_select_db($db_name);
}
}
class DBQueries extends DBConn {
function displayUsers(){
$this->dbConnection();
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($query)) {
echo $row['password'];
}
}
}
回答by jondavidjohn
You are passing in $querywhich is your sql string, when you need to pass in $resultwhich is your db result object.
您正在传入$querywhich 是您的sql string,当您需要传入$resultwhich 是您的数据库结果对象时。
class DBQueries extends DBConn {
function displayUsers(){
$this->dbConnection();
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo $row['password'];
}
}
}
回答by mkb
You need to pass in the result handle $resultreturned by mysql_query().
您需要传入$result由 返回的结果句柄mysql_query()。
回答by feihtthief
You need to pass $result into the mysql_fetch_array function call as the first parameter, not $query.
您需要将 $result 作为第一个参数传递到 mysql_fetch_array 函数调用中,而不是 $query。
class DBQueries extends DBConn {
function displayUsers(){
$this->dbConnection();
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo $row['password'];
}
}
}

