2016-01-27 3 views
0

Я всегда использовал функции mysql_ * или объект mysqli, так что это мойПочему мое действительное соединение PDO не начинается?

первый запуск на PDO.

Файл, который я работаю с здесь:

<? 
echo __FILE__; 
?> 
<? 

    $json='{"servername":"********","username":"**********","password":"********","database":"*********"}'; 
    $json=json_decode($json); 


    $testConn= new mysqli($json->servername, $json->username, $json->password, $json->database); 

    var_dump(mysqli_fetch_assoc($testConn->query("SELECT * FROM ssd"))); 


    $dsn= "mysql: host=$json->servername; dbname=$json->database"; 

    try{ 
     $conn= new PDO($dsn, $json->username, $json->password); 
    }catch(PDOException $e){die('loginApi::Invalid server::failure');} 
    ?> 

MySQLi объект создается без проблем, как вы можете увидеть

Here: http://streamlinedesign.ml/cms.php

но объект PDO продолжает бросать исключение. Хотя я настроил dsn точно так же, как в руководствах по PHP, я не могу найти проблему

+0

Зачем? – Progrock

+0

'exception 'PDOException' с сообщением 'SQLSTATE [HY000] [2002] Нет такого файла или каталога' в /srv/disk12/2035773/www/streamlinedesign.ml/cms.php:18 Трассировка стека: # 0/srv/disk12 /2035773/www/streamlinedesign.ml/cms.php(18): PDO -> __ construct ('mysql: host = fdb ...', '********', '****** *** ') # 1 {main} ' –

+2

Удалить пробелы из dsn? – Progrock

ответ

0

Я перестраиваю блок try/catch для проверки. Пожалуйста, используйте и дайте мне знать, есть ли сообщение об ошибке.

$dsn= "mysql:host=" . $json->servername . ";dbname=" . $json->database; 

try{ 
    $conn= new PDO($dsn, $json->username, $json->password); 
    foreach($conn->query('SELECT * FROM ssd') as $row) { 
    print_r($row); 
    } 
    $conn = null; 
} catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
    die(); 
} 

Удалить foreach если вы получаете решение.

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