PHP / MySQL - mysql_error():提供的参数不是有效的MySQL-Link资源

时间:2012-03-10 22:35:50

标签: php mysql phpmyadmin

有一百个问题都与这个错误有关。我经历过他们每一次......两次。

去年,我一直在研究一个非常强大的PHP和MySQL客户端管理系统,我即将结束。这个错误时不时会弹出,它驱动我的坚果。

我还有另外三个这个代码的例子在我网站的其他部分完美运行。我复制并将其发布到新页面,更改了一些变量,并且没有失败MySQL说要检查引号,我的版本可能是错误的。我把头发拉出来......请帮忙!

// Update existing contact list
if(count($_POST['existing_contact']) > 0){
    foreach ($_POST['existing_contact'] as $exist_contact) {
        mysql_query("UPDATE `contact_lists` SET
            contact_lists.sequence = '".mysql_real_escape_string($exist_contact['sequence'])."' ,
            contact_lists.name = '".mysql_real_escape_string($exist_contact['name'])."' ,
            contact_lists.primary_phone = '".mysql_real_escape_string($exist_contact['primary_type'])."' ,
            contact_lists.primary_type = '".mysql_real_escape_string($exist_contact['primary_type'])."' ,
            contact_lists.secondary_phone = '".mysql_real_escape_string($exist_contact['secondary_phone'])."' ,
            contact_lists.secondary_type = '".mysql_real_escape_string($exist_contact['secondary_type'])."' ,
            contact_lists.panel_code = '".mysql_real_escape_string($exist_contact['panel_code'])."' ,
            contact_lists.password = '".mysql_real_escape_string($exist_contact['contact_password'])."' 
            WHERE `id` = ".mysql_real_escape_string($exist_contact['contact_identifier'])."")
            or die(mysql_error("<font size='-1' face='Verdana, Geneva, sans-serif'>Can't connect to MySQL. Please try again.</font>"));
    };
};

这是我从phpMyAdmin

获得的
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sequence']).&quot;' ,
                                     contact_lists.name = '&quot;.mysql_real_escape_string($ex' at line 2

我发誓这段确切的代码,不同的变量在我的网站的两个或三个其他位置运行。如果你能在这里看到任何与众不同的东西,请指出我正确的方向。谢谢!

编辑------

以下是复制和粘贴的原始代码。 (当然,有变化的变化)

// Update existing zone list
if(count($_POST['existing_zone']) > 0){
    foreach ($_POST['existing_zone'] as $exist_zone) {
        if($exist_zone['zone_exists'] == TRUE) { $zone_exists_checked = "1"; } else { $zone_exists_checked = "0"; };
        mysql_query("UPDATE `zone_lists` SET
                                    zone_lists.zone_number = '".mysql_real_escape_string($exist_zone['zone_number'])."' ,
                                    zone_lists.zone_description = '".mysql_real_escape_string($exist_zone['zone_description'])."' ,
                                    zone_lists.zone_existing = '".mysql_real_escape_string($zone_exists_checked)."'
                                    WHERE `id` = ".mysql_real_escape_string($exist_zone['zone_list_identifier'])."")
            or die(mysql_error("<font size='-1' face='Verdana, Geneva, sans-serif'>Can't connect to MySQL. Please try again.</font>"));
    };
};

2 个答案:

答案 0 :(得分:1)

mysql_error仅将资源作为其参数(使用mysql_connect()创建的参数)。你正试图提供一个字符串。

你可能在其他地方工作的是:

or die("<font size='-1' face='Verdana, Geneva, sans-serif'>Can't connect to MySQL. Please try again.</font>");

答案 1 :(得分:0)

<强>解决。

好的,所以这是交易......

这段代码中的一切都很好。事实证明,由于单个字母拼写错误,WHERE子句中的变量为空。我在上一页的表单中有“conctact”而不是“contact”。我开始用静态信息替换所有变量,并在每次重新插入变量时运行代码。