2017-02-23 36 views
0

Как преобразовать код mysql в pdo-соединение? потому что у меня есть проблемы с сетью.Как я могу преобразовать mysql в соединение PDO?

$gaSql['user'] = "root"; 
$gaSql['password'] = ""; 
$gaSql['db'] = "test"; 
$gaSql['server'] = "localhost"; 

// DB connection 
function dbinit(&$gaSql) { 

// if error rezults 500 
function fatal_error($sErrorMessage = '') { 
header($_SERVER['SERVER_PROTOCOL'] .' 500 Internal Server Error'); 
die($sErrorMessage); 
} 

// connecting to mysql 
if (!$gaSql['link'] = @mysql_connect($gaSql['server'], $gaSql['user'], $gaSql['password'])) { 
fatal_error('Could not open connection to server'); 
} 

// select the DB 
if (!mysql_select_db($gaSql['db'], $gaSql['link'])) { 
fatal_error('Could not select database'); 
} 
} 
+0

Для PDO попробуйте прочитать [manual] (http://php.net/manual/en/pdo.connections.php) & this [post] (https: // phpdelusions.net/pdo). почему вы используете свою функцию для поиска ошибки вместо 'mysql_error()'. – gaurav

ответ

2

соединение Правильное PDO дб

<?php 

    $host = '127.0.0.1'; 
    $db = 'your db'; 
    $user = 'root'; 
    $pass = ''; 
    $charset = 'utf8'; 

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 
    $options = [ 
      PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 
      PDO::ATTR_EMULATE_PREPARES => false, 
      ]; 


$dbh = new PDO($dsn, $user, $pass, $options); 

?> 

Ссылка: https://phpdelusions.net/pdo

Я используйте это во всех моих подключениях pdo, он отлично работает

0

Вы могли бы попробовать что-то вроде этого:

try { 
    $pdo = new PDO('mysql:host=' . $gaSql['server'] . ';dbname=' . $gaSql['db'], $gaSql['user'], $gaSql['password']); 
} catch (PDOException $ex) { 
    if ($ex->getCode() == 1049) { 
     throw new Exception('Unknown Database: ' . $gaSql['db']); 
    } elseif ($ex->getCode() == 1045) { 
     throw new Exception('Wrong credentials for user: ' . $gaSql['user']); 
    } 
} 

Надежда, это помогает ;-)

+0

Не удалось загрузить ресурс: сервер ответил со статусом 500 (Internal Server Error) –

+0

. Хорошая вещь о PDO заключается в том, что он может самостоятельно генерировать фатальные ошибки, делает лишний лишний код лишним –