2012-11-23 1 views
0

Я создаю установочный файл для созданного мной скрипта и также предоставляю поля для ввода данных базы данных. В любом случае, прежде чем хранить данные базы данных в файле config.php, я хотел бы посмотреть, работают ли они. Каким будет лучший способ узнать, действительны ли предоставленные данные? Я думал о запуске фиктивного запроса, и если он будет успешным, сохраните детали в файле. Я не знаю, какой будет лучший запрос? Я использую PDO для всего. Таким образом, мне в основном нужно проверить, удалось ли соединение с базой данных продолжить.Dummy SQL-запрос

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

Спасибо.

+1

приведены в руководстве, Пример # ошибка подключения 2 Обработки: http://php.net/manual /en/pdo.connections.php ... ах, но я полагаю, вам также захочется проверить разрешения, верно? –

+0

@WesleyMurch Да, необходимо также проверить разрешения. – Aborted

ответ

0

Прежде всего, проверьте правильность подключения PHP к базе данных (возвращаемые значения, ошибки mysql). Затем вы можете использовать что-то вроде SHOW VARIABLES LIKE "%version%", чтобы определить версию ядра базы данных, поэтому все функции и методы будут работать по назначению. Таким образом, вы также можете сообщить своим пользователям, что их версия db является старой, которая будет использоваться с вашим программным обеспечением.

EDIT

Кроме того, запрос из SHOW GRANTS FOR 'user'@'host' является хорошей идеей, чтобы проверить разрешения для подключенного пользователя

2

Если вы используете сервер sql somethig, как «выбрать 1», это сделает работу. Я думаю, что многие другие механизмы базы данных также будут поддерживать этот запрос.

+0

Недостатком 'SELECT' является невозможность проверить разрешения. Создание таблиц, например. – Eric

0

Ну, вы можете предположить, что соединение выполнено успешно, если функция соединения возвращает ожидаемое значение без возникновения каких-либо ошибок/исключений. Помимо этого ...

SHOW TABLES FROM $database;

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

1

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

  1. Может открыть соединение
  2. базы данных есть/может быть создан
  3. Пользователь может видеть данные/можно построить ДАННЫЕ и т.д ..

Тогда как часть установки вы можете сказать если что-то не так и укажет на проблему, чтобы решить проблему. Вы должны сделать это на ранней стадии установки, чтобы вам не пришлось откатываться слишком много.

Подумайте об установке. Что вы хотите при установке программы. Хотели бы вы просто сказать

"Error. Can't connect", 
or 
"Error: Cannot connect to DATABASEX the SERVERY with the USERID_W", 
or even better 
"Error: Can connect to the DATABASEX the SERVERY with the USERID_W, but table X is missing, have you completed step ABC first?" 

Сделайте столько, сколько вы можете для пользователя.