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 DBConn
and DBQueries
. DBQueries
inherits 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 $query
which is your sql string, when you need to pass in $result
which is your db result object.
您正在传入$query
which 是您的sql string,当您需要传入$result
which 是您的数据库结果对象时。
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 $result
returned 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'];
}
}
}