2014-12-30 8 views
0

Я пытаюсь подключиться к серверу MySQL (организовано GoDaddy) из PHP с использованием PDO.Не удается подключиться к MySQL

Но я получаю эту ошибку:

An error occured : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 

Обратите внимание, что это не база данных я хозяин.

Я просто дал имя пользователя и пароль для построения базы данных, создавать пользователей и т.д.

function ConnectToDb() 
{ 
    try{ 
     $dns = 'mysql:host=1.1.1.1;dbname=dummyDbName'; 
     $username = 'dummyUser'; 
     $password = 'dummyPassword'; 
     $LINK = new PDO($dns, $username, $password); 
     $LINK->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
     $LINK->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     if (!$LINK){ 
      die('Could not connect : ' .mysql_error()); 
     } 
     else{ 
      return $LINK; 
     } 
    } catch (PDOException $ex){ 
     echo "An error occured : " .$ex->getMessage(); 
    } 
} 

Я знаю, что это работает на локальном хосте.

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

У кого-нибудь есть подсказка?

Благодаря

ответ

1

следующего формата:

$user = "username"; 
$pass = "password"; 
$host = "localhost"; 
$db = "yourDbname"; 
$dns = "mysql:host=" . $host . ";dbname=" . $db; 
$dbh = new PDO($dns, $user, $pass); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

, когда вы должны сделать запрос (просто пример):

$theid = 10; 
$statement = $dbh->prepare('SELECT * FROM yourtable WHERE id = ? and name = ?'); 
$statement->execute(array($theid,'baronth')); 

, если вы хотите увидеть, если есть какая-то ошибка во время подключение или выполнение запросов (и вы знаете, как работает try-catch), окружайте его:

try { 
all the code that you wan't to check 
} 
catch (PDOException $e) { 
    echo $e->getMessage(); 
} 

будет отражать ошибку.

+0

Чтобы убедиться, что хост должен быть адресом сервера правильно? –

+0

Рассмотрите этот код как модальный. Иногда могут возникать проблемы при прямом использовании: $ dns = 'mysql: host = 1.1.1.1; dbname = dummyDbName'; в одной кавычки. –

+0

Извините за поздний повтор, хорошо спасибо за информацию, будет полезно использовать его :) Я до сих пор не могу правильно подключиться, но мне больно :( –

Смежные вопросы