PHP / MySQL - mysql_error (): предоставленный аргумент не является допустимым ресурсом MySQL-Link - PullRequest
0 голосов
/ 11 марта 2012

Есть сотня вопросов, которые как-то связаны с этой ошибкой. Я прошел через каждого из них ... дважды.

В течение прошлого года я работал над довольно надежной системой управления клиентами с 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 ]

1 голос
/ 11 марта 2012

mysql_error принимает в качестве аргумента только ресурс (созданный с помощью mysql_connect()). Вы пытаетесь указать строку.

Что вы, вероятно, работаете в другом месте:

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

0 голосов
/ 11 марта 2012

РЕШЕНО.

Хорошо, вот и сделка ...

Все было хорошо в коде.Как оказалось, переменная в предложении WHERE была пустой из-за опечатки из одной буквы.У меня был «контакт» вместо «контакт» в форме на предыдущей странице.Я начал с замены всех переменных статической информацией и запускал код каждый раз, когда вставлял переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...