可能重复:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given
我正在编写一个php和mysql程序,用于在数据库中添加和检索facebook app id和secret。但是我收到以下错误。我的链接是http://freegiveaway.info/new/manageApp.php .btw我的数据库已成功连接。
Warning: mysql_fetch_assoc() expects parameter 1 to be resource,
boolean given in /home/free/public_html/new/manageApp.php
我的php包含以下代码
$flag = $_POST['flag'];
$key = $_POST['key'];
$secret = $_POST['secret'];
$deleteApp=$_POST['deleteApp'];
$appN=$_POST['appN'];
$db = mysql_connect("localhost", "free_1", "password");
mysql_select_db("facefunv_chuck", $db);
$app = mysql_query("SELECT * FROM tsp ORDER BY n",$db);
while ($apps = mysql_fetch_assoc($app)){
我在线路上遇到错误而($ apps = mysql_fetch_assoc($ app)){
我的sql文件在
下面/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `facefunv_chuck`
--
-- --------------------------------------------------------
--
-- Table structure for table `tsp`
--
CREATE TABLE IF NOT EXISTS `tsp` (
`n` int(11) NOT NULL AUTO_INCREMENT,
`id` text NOT NULL,
`secret` text NOT NULL,
`restricted` int(11) NOT NULL,
`banned` int(11) NOT NULL,
PRIMARY KEY (`n`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
答案 0 :(得分:1)
mysql_query()在出错时返回FALSE
,因此您的查询失败并且您仍在尝试从中获取行。
首先尝试检查返回值:
$app = mysql_query("SELECT * FROM tsp ORDER BY n",$db);
if (!$app) {
die("Query failed: " . mysql_error());
}
while (($apps = mysql_fetch_assoc($app)) !== false) {
//...
}
答案 1 :(得分:1)
简而言之,mysql_query()如果选择成功则返回资源,否则返回FALSE。您应该在代码中检查该错误。
可能有几个原因,但显而易见的一个是您连接到数据库并mysql_select_db()数据库“auto”,您尝试从表中选择数据。根据您的转储,数据库实际上称为“facefunv_chuck”,而不是“auto”。
答案 2 :(得分:1)
您正在使用mysql_select_db将数据库名称更改为“auto”。我猜不会有一个名为auto的数据库与表tsp。因此结果$ app为null,你不能在null上调用fetch。