人大金仓数据库
namespace xxxx\db;
use PDO;
use PDOException;
/**
- 数据库类
*/
class Db
{
private static $pdo=null;
public static function pdo(){
if(self::$pdo!==null){
return self::$pdo;
}
define('DB_TYPE', 'kdb');
define('DB_PARAMS', [
// 'search_path'=>DB_NAME,
]);
try {
$dsn = sprintf('%s:host=%s;dbname=%s;port=%s;',DB_TYPE,DB_HOST,DB_NAME,DB_HOSTPORT);
if(DB_CHARSET){
if(DB_TYPE=='kdb'){
$dsn .= 'options=--client_encoding='.DB_CHARSET.';';
}else{
$dsn .= 'charset='.DB_CHARSET.';';
}
}
if(DB_PARAMS){
if(DB_TYPE=='kdb'){
$dsn .= 'options=';
foreach (DB_PARAMS as $key => $value) {
$dsn .= '--'.$key.'='.$value.',';
}
$dsn=rtrim($dsn, ',');
}else{
foreach (DB_PARAMS as $key => $value) {
$dsn .= $key . '=' . $value.';';
}
}
}
$option =[
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
// PDO::ATTR_EMULATE_PREPARES => false,
// PDO::ATTR_STRINGIFY_FETCHES => false,
];
return self::$pdo = new PDO( $dsn ,DB_USER, DB_PASS, $option);
} catch (PDOException $e) {
echo 'Connection Failed: ' . $e->getMessage();
}
}
}