Php mysql结果检查不正确?
为什么我还得到一份工作 警告:mysql_fetch_assoc()希望参数1是资源,字符串在 使用以下功能时:Php mysql结果检查不正确?,php,mysql,associations,fetch,Php,Mysql,Associations,Fetch,为什么我还得到一份工作 警告:mysql_fetch_assoc()希望参数1是资源,字符串在 使用以下功能时: public function getRowsWhere($table, $order_by, $where_field, $where_match, $limit_start = 0, $limit_end = 1) { // query Table $query_string = "SELECT * FROM $table WHERE $where_field=
public function getRowsWhere($table, $order_by, $where_field, $where_match, $limit_start = 0, $limit_end = 1) {
// query Table
$query_string = "SELECT * FROM $table WHERE $where_field='$where_match' ORDER BY '$order_by' DESC LIMIT $limit_start, $limit_end";
// run query
$sql = new DBQuery($this->database);
$result = $sql->prepareQuery($query_string);
if ($result) {
// initialize results array
$match_array = [];
// iterate through array and place results in an array at row index
$r = 0;
while ($row = mysql_fetch_assoc($result)) {
$row_array = [];
$c = 0;
while ($c < mysql_num_fields($result)) {
$col = mysql_fetch_field($result, $c);
$row_array[$col->name] = $row[$col->name];
$c++;
}
$match_array[$r] = $row_array;
$r++;
}
}
// return data
return $match_array;
}
根据请求:DBQuery类。这些都是相当基本的东西
<?php
class DbQuery extends DbMan {
/**
* PARAMETERS
*
* ^ @param array $database -> database connection information
* --------------------------------------------------------------------------
*/
protected $database;
/**
* --------------------------------------------------------------------------
* PUBLIC
* __construct ()
* = set database object to use
*
* ^ @param string $database -> database connection information
* --------------------------------------------------------------------------
*
*/
public function __construct($database) { $this->database = $database; }
/**
* --------------------------------------------------------------------------
* PUBLIC
* prepareQuery ()
* = checks Sql, executes query to return requested data set
*
* ^ @param string $query_request -> query string
* ~ @return object $result_dataset -> result data set
* --------------------------------------------------------------------------
*
*/
public function prepareQuery($query_request) {
// retrieve result dataset
$result_dataset = $this->executeQuery($query_request);
// return result data set
return $result_dataset;
}
}
您正在关闭此处的连接:
// close database connection
mysql_close($this->mysql_connection);
// Check to make sure data is returned
if (mysql_num_rows($query_result)) {
// return result data set
return $query_result;
}
else {
// return nothing
return "No Data Available";
}
这意味着mysql\u num\u rows
返回FALSE
,因此返回字符串No Data Available
,因此mysql\u fetch\u assoc()希望参数1是resource,string gived
error.在新代码中。它们不再得到维护,而是在使用。看到红色的盒子了吗?学习准备好的语句,然后使用or。您似乎使用了某种库,因为DBQuery
不是一个普通的PHP类。您应该提供更多详细信息。什么是$sql->prepareQuery
?在我看来,您似乎还没有执行查询。prepareQuery
做什么?@obmon如果你不能告诉我们更多关于这门课的信息,我们也帮不了你。我们需要那个类“prepareQuery()
方法返回什么的文档。谢谢。我想我现在就忽略这个错误,稍后再从mysql切换。
<?php
class DbMan {
/**
* PARAMETERS
*
* ^ @param array $database -> database connection information
* @param object $mysql_connection -> database connection object
* @param object $mysql_connection -> database object
* --------------------------------------------------------------------------
*/
protected $database;
private $mysql_connection;
private $mysql_db;
/**
* --------------------------------------------------------------------------
* PUBLIC
* __construct ()
* = empty constructor
*
* ^ @param ->
* --------------------------------------------------------------------------
*
*/
public function __construct() { }
/**
* --------------------------------------------------------------------------
* PROTECTED
* dbConnect ()
* = open connection to MySql and connect to database
*
* ^ @param ->
* --------------------------------------------------------------------------
*
*/
protected function dbConnect() {
// connect to MySQL
$this->mysql_connection = mysql_connect($this->database['hostname'], $this->database['username'], $this->database['password'])
or die('Unable to connect to MySQL : ' . mysql_error());
// connect to database
$this->mysql_db = mysql_select_db($this->database['database'], $this->mysql_connection)
or die('Unable to connect to database : ' . mysql_error());
}
/**
* --------------------------------------------------------------------------
* PROTECTED
* executeQuery ()
* = run query on database
*
* ^ @param string $query -> sql statement string
* ~ @return result $query_result -> result of query
* --------------------------------------------------------------------------
*
*/
protected function executeQuery($query) {
// open connection to the database
$this->dbConnect();
// run sql query on database
$query_result = mysql_query($query)
or die('Could not run query on table:<br />' . mysql_error());
// close database connection
mysql_close($this->mysql_connection);
// Check to make sure data is returned
if (mysql_num_rows($query_result)) {
// return result data set
return $query_result;
}
else {
// return nothing
return "No Data Available";
}
}
}
// close database connection
mysql_close($this->mysql_connection);
// Check to make sure data is returned
if (mysql_num_rows($query_result)) {
// return result data set
return $query_result;
}
else {
// return nothing
return "No Data Available";
}