Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql_fetch_assoc()期望参数1是给定的资源布尔值_Php_Sql - Fatal编程技术网

Php mysql_fetch_assoc()期望参数1是给定的资源布尔值

Php mysql_fetch_assoc()期望参数1是给定的资源布尔值,php,sql,Php,Sql,我最近在我的主机上升级了我的PHP版本,我认为这是导致这个错误的原因。每当我启动apache并调用这个include文件来访问数据库时,apache就会开始生成千兆字节的错误。我查看日志并收到此错误 PHP警告:mysql\u fetch\u assoc()希望参数1是资源,布尔值在第22行的/var/www/html/includes/database.config.PHP中给出 第22行是 while(($c = mysql_fetch_assoc($rsetCoupons)) !== fa

我最近在我的主机上升级了我的PHP版本,我认为这是导致这个错误的原因。每当我启动apache并调用这个include文件来访问数据库时,apache就会开始生成千兆字节的错误。我查看日志并收到此错误

PHP警告:
mysql\u fetch\u assoc()希望参数1是资源,布尔值在第22行的/var/www/html/includes/database.config.PHP中给出

第22行是

while(($c = mysql_fetch_assoc($rsetCoupons)) !== false)
我猜它会在列出的每个地方产生这个错误

有人知道是什么导致了这一切吗?当前的PHP版本是

PHP5.3.2(cli)(构建时间:2011年6月25日08:12:19)

版权所有(c)1997-2010 PHP集团

Zend Engine v2.3.0,版权所有(c)1998-2010 Zend Technologies

(显然,我在代码的开头删去了connect的变量)


$rsetCoupons在执行时不是mysql查询资源。要么查询失败,要么变量丢失在某处

我相当肯定你的质疑是失败的。您应该检查mysql\u查询的返回,如果返回为false,则检查mysql\u error()

此外,您不应该抑制mysql\u connect和mysql\u select\u db调用中的错误。如果无法建立数据库连接,您应该更优雅地处理它,而不是让页面在随后的每次mysql调用中出错。这可能就是你的错误所在。如果您正在抑制错误以向用户隐藏错误,面向公众的PHP站点应该将display_errors设置为off,但您仍然应该记录错误。

这个答案意味着(通常)您的查询语法是错误的


在这种情况下,您使用的是
$rsetCoupons=query('SELECT*FROM优惠券订单BY优惠券\ u id ASC')
然后是mysql函数,改用
mysql\u query

我相当肯定它只是mysql_query()的包装。他的queryFetch似乎暗示它调用mysql\u query,然后返回mysql\u fetch\u assoc,问题是数据库没有连接。不过,你的回答有些准确。query与mysql\u同义我的问题最终出现在连接字符串define('mysql\u DATABASE','DATABASE');实际上它应该是define('MYSQL_数据库','repair_数据库');的确由于数据库调用不准确,连接失败。我在调用一个不存在的数据库。你的回答为我指明了正确的方向。感谢you@bažmegakapa:感谢您的关注,使这至少更加规范。非常感谢。
@mysql_connect(MYSQL_HOST, MYSQL_USERNAME, MYSQL_PASSWORD);
@mysql_select_db(MYSQL_DATABASE);

define('DOMAIN', 'MYDOMAINISTHIS.com');

$parse_version = queryFetch('SELECT version,secret FROM version ORDER BY version_id DESC LIMIT 0,1');

$VERSION = $parse_version['version'];
$SECRET = $parse_version['secret'];

$VALID_COUPONS = array();

$rsetCoupons = query('SELECT * FROM coupons ORDER BY coupon_id ASC');

while(($c = mysql_fetch_assoc($rsetCoupons)) !== false)
{
    $VALID_COUPONS[$c['code']] = $c['percent'];
}

$salutations = array();

$rsetSalutations = query('SELECT * FROM salutations ORDER BY salutation_id ASC');

while(($c = mysql_fetch_assoc($rsetSalutations)) !== false)
{
    $salutations[] = $c['salutation'];
}

$BASE_PRICE_QTY = array();
$UPGRADE_PRICE = array();

$rsetPrices = query('SELECT * FROM cart_prices ORDER BY qty ASC');

while(($c = mysql_fetch_assoc($rsetPrices)) !== false)
{
    $BASE_PRICE_QTY[] = $c['unit_price'];
    $UPGRADE_PRICE[] = $c['upgrade_price'];
}

function insert($hash, $table)
{
    $fields = implode(',', array_keys($hash));
    $values = implode('","', $hash);

    $query = sprintf('INSERT INTO %s (%s) VALUES("%s")', $table, $fields, $values);

    query($query);
}

function query($query)
{
    return @mysql_query($query);
}

function queryFetch($query)
{
    return @mysql_fetch_assoc(query($query));
}

function p($key, $default = '')
{
    if (isset($_POST[$key]))
    {
        return $_POST[$key];
    }
    else 
    {
        return $default;
    }
}

function g($key, $default = '')
{
    if (isset($_GET[$key]))
    {
        return $_GET[$key];
    }
    else 
    {
        return $default;
    }
}