错误警告:php中的mysql_fetch_assoc()函数
错误警告:php中的mysql_fetch_assoc()函数
可能是重复的问题:
警告:mysql_fetch_array()提供的参数不是有效的MySQL结果
在db.php中,我有:
connect = mysql_connect($this->host, $this->user, $this->pass) or die("无法连接数据库"); mysql_select_db($this->database, $this->connect); } function getData() { $data = array(); $sql = 'Select * From test'; $query = mysql_query($sql); while($row = mysql_fetch_assoc($query)) { $data[] = array($row['id'], $row['name']); } return $data; } } ?>
在index.php中,我有:
connect(); $data = $connect->getData(); $str = ''; foreach ($data as $dt) { $str .= $dt[1]; } echo $str; ?>
我得到以下错误:
=> 从db.php得到错误:警告:mysql_fetch_assoc()提供的参数不是有效的MySQL结果资源。
我做错了什么?
(Error Warning: mysql_fetch_assoc() in php)这个问题的出现的原因是查询语句$query = mysql_query($sql);
返回了一个错误。这个错误提示你的数据库'databasename'
或其中的表'test'
不存在。
解决方法是确保数据库'databasename'
存在,并且其中的表'test'
也存在。可以通过以下步骤来解决这个问题:
1. 检查数据库名称是否正确,确保在代码中使用的数据库名称与实际存在的数据库名称一致。
2. 检查表名是否正确,确保在代码中使用的表名与实际存在的表名一致。
3. 如果数据库或表名中包含特殊字符或空格,确保在代码中正确使用这些字符,或者考虑将它们更改为简单的字母和数字组合。
4. 如果数据库或表名是大小写敏感的,请确保在代码中使用的大小写与实际存在的数据库或表名一致。
5. 确保数据库连接已经成功建立,并且具有足够的权限来执行查询操作。
通过以上步骤,您应该能够解决(Error Warning: mysql_fetch_assoc() in php)这个问题。
这段代码中的问题是mysql_fetch_assoc()函数。下面是问题出现的原因和解决方法:
问题原因:
- mysql_fetch_assoc()函数是用于从结果集中获取一行作为关联数组的函数。然而,在这段代码中,使用了mysql_fetch_array()函数来获取结果集中的行。这导致了错误的发生。
解决方法:
- 将mysql_fetch_array()函数替换为mysql_fetch_assoc()函数,以正确地获取结果集中的关联数组。
- 修改代码如下:
function getData() { $data = array(); $sql = 'Select * From test'; $query = mysql_query($sql); if(!$query) { echo 'Error: ' . mysql_error(); /* Check what is the error and print it */ exit; } while($row = mysql_fetch_assoc($query)) { /* Use fetch assoc instead */ $data[] = array($row['id'], $row['name']); } return $data; }
通过将mysql_fetch_array()函数替换为mysql_fetch_assoc()函数,问题得到了解决。现在,代码能够正确地从结果集中获取关联数组。