SQL-запрос работает на тестовом сервере, но не работает ... в чем может быть разница? - PullRequest
1 голос
/ 21 мая 2009

РЕШИТЬ: Я написал и протестировал PHP-скрипт на локальном сервере. (Ничего особенного, только две последовательные вставки SQL в одну и ту же базу данных, но в разные таблицы).

Оба сервера работают на PHP5 и MYSQL 5.

На локальном сервере оба запроса обрабатываются корректно.

На работающем сервере работает только первый запрос, но не второй, и я не могу понять, почему.

Вот код:

    $sql_login = "INSERT INTO logintbl 
              (...) 
           VALUES (...)";
   $result_login = mysqli_query($this->connect, $sql_login);

   # Fill contact details
   $sql_contactD = "INSERT INTO contactDetails
                    (...)
         VALUES (...)";
   $result_contactD = mysqli_query($this->connect, $sql_contactD);

На моем локальном сервере оба запроса возвращают true, и данные добавляются в базу данных.

На моем работающем сервере первый запрос работает, как и ожидалось, но второй запрос завершается неудачно без сообщения об ошибке.

Конечно, структуры таблиц идентичны на обоих серверах. Обе таблицы находятся в одной базе данных, и пользователь имеет достаточные права на базу данных.

Есть подсказка, что может быть не так?


Редактировать 1: Разрешения: Да, у пользователя есть соответствующие разрешения для обеих таблиц.


Редактировать 2: Я чувствую себя очень глупо, но, следуя совету Джеймса о проверке mysqli_error (), я обнаружил, что рабочий сервер чувствителен к регистру в отношении имен таблиц, в отличие от моего сервера тестирования, И что он преобразовал исходный имя моей таблицы (contactDetails) в нижнем регистре (contactdetails).

Спасибо всем за помощь.

Ответы [ 3 ]

0 голосов
/ 21 мая 2009

Вы пытались напечатать $ sql_contactD на экране (или веб-странице), а затем выполнить точно такой же запрос в браузере запросов MySQL?

0 голосов
/ 10 июня 2010

Отвечая на мой собственный вопрос, потому что это выглядит как единственный способ правильно его закрыть:

Я чувствую себя очень глупо, но следую Совет Джеймса проверки mysqli_error (), я обнаружил, что производственный сервер чувствителен к регистру в отношении имен таблиц, в отличие от моего тестирование сервера, и что он конвертировал оригинальное имя моего стола (contactDetails) в нижний регистр (contactdetails).

0 голосов
/ 21 мая 2009

вы проверили разрешения в вашей производственной среде? То есть вы убедились, что у вас есть доступ для вставки в contactDetails?

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