PHP + MySQL: проверка соединения с сервером и подключения к базе

By | 09/10/2012
 

Простенький скрипт, для проверки работы связки PHP+MySQL.

Скрипт выполняет подключение к серверу MySQL и, если успешно, то к базе данных.

В значения переменных указываем свои данные:

$server – адрес сервера баз данных;
$user – имя пользователя БД;
$password – пароль пользователя;
$database – имя базы данных.

Содержимое скрипта:

<?php
$server = 'localhost';
$user = 'dbuser';
$password = 'dbpass';

$dblink = mysql_connect($server, $user, $password);

if($dblink)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');

$database = 'dbbase';
$selected = mysql_select_db($database, $dblink);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
?>

Выполняем скрипт, и если соединение прошло успешно – получим такой ответ:

$ php connect.php
Соединение установлено.
Подключение к базе данных прошло успешно.

А в случае ошибки:

$ php connect.php
Ошибка подключения к серверу баз данных.
База данных не найдена или отсутствует доступ.

Если ошибка в логине или пароле – получим об этом сообщение такого вида:

$ php connect.php
Warning: mysql_connect(): Access denied for user 'dbuser'@'localhost' (using password: YES)
Ошибка подключения к серверу баз данных.

  • Vitaxa
     

    Доброго времени суток! А если выдает вот такое:

    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:UsersPublicApache_2.4.6VC11htdocstestmysql.php on line 7
    Соединение установлено. База данных не найдена или отсутствует доступ.

    •  

      А в чём именно вопрос? В первой части говорится, что mysql_connect() устарел, и предлагается использовать другие методы. В принципе – не критично, работать всё-равно должно. Ну а во второй – всё сказано и так. Может – имя базы неправильно указано?

      • Vitaxa
         

        Спасибо за быстрый ответ! Но я новичок в этом деле, пытаюсь разобраться, так что извиняюсь за след. глупый вопрос: а где указывается имя БД? В php.ini? Заранее благодарен за ответ!

  • Рома
     

    Поставил, настроил lighttpd+php+mysql. Создал connect.php с Вашим кодом. При попытке попасть на “ip_компа/connect.php” пустая страница. Подскажите пжлст где может быть трабл?

    •  

      Смотрите лог ошибок lighttpd, и в my.cnf включите display_errors = on

  •  

    Но лучше будет так:

    define(“db_host”, “localhost”);

    define(“db_user”, “root”);

    define(“db_pasw”, “123456”);

    define(“db_name”, “test”);

    mysql_connect(db_host, db_user, db_pasw) or die(mysql_error());
    mysql_select_db(db_name) or die(mysql_error());

  • Игорь
     

    У меня вот что получается: Соединение установлено. База данных не найдена или отсутствует доступ.