繁体   English   中英

如何将mysql转换为PDO连接?

[英]how can i transform mysql to PDO connection?

如何将下面的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');
}
}

正确的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连接中都使用了它,效果很好

您可以尝试这样的事情:

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']);
    }
}

希望这可以帮助 ;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM