
PHP配置连接KingbaseES — KingbaseES产品手册
https://help.kingbase.com.cn/v8/development/client-interfaces/php-pdo/php-pdo-2.html#linux-php
下载后,将pdo_kdb.so放到php包扩展目录
#查看扩展包位置
php -i |grep 'extension_dir'
php -m|grep 'pdo_kdb'

复制 \vendor\laravel\framework\src\Illuminate\Database\Connectors\PostgresConnector.php改名KingBaseConnector.php
PostgresConnector修改成KingBaseConnector
pgsql: 改成kdb:文件路径:\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php
return match ($config['driver']) {
'mysql' => new MySqlConnector,
'pgsql' => new PostgresConnector,
'sqlite' => new SQLiteConnector,
'sqlsrv' => new SqlServerConnector,
'kingbase' => new KingBaseConnector,
default => throw new InvalidArgumentException("Unsupported driver [{$config['driver']}]."),
}; return match ($driver) {
'mysql' => new MySqlConnection($connection, $database, $prefix, $config),
'pgsql' => new PostgresConnection($connection, $database, $prefix, $config),
'sqlite' => new SQLiteConnection($connection, $database, $prefix, $config),
'sqlsrv' => new SqlServerConnection($connection, $database, $prefix, $config),
'kingbase' => new KingBaseConnection($connection, $database, $prefix, $config),
default => throw new InvalidArgumentException("Unsupported driver [{$driver}]."),
};路径: \vendor\laravel\framework\src\Illuminate\Database\
复制PostgresConnection.php类改名KingBaseConnection.php
\vendor\laravel\framework\src\Illuminate\Database\PDO 新建kingbase驱动类
<?php
namespace Illuminate\Database\PDO;
use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver;
use Illuminate\Database\PDO\Concerns\ConnectsToDatabase;
class KingBaseDriver extends AbstractPostgreSQLDriver
{
use ConnectsToDatabase;
/**
* {@inheritdoc}
*/
public function getName()
{
return 'pdo_kdb';
}
} protected function getDoctrineDriver()
{
return new KingBaseDriver;
}修改/config/database.php配置文件,添加kingbase配置
'kingbase' => [
'driver' => 'kingbase',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'schema' => 'test',
'prefix' => env('DB_PREFIX', ''),
'prefix_indexes' => true,
'search_path' => 'public',
'sslmode' => 'prefer',
],修改数据库配置
public function test()
{
try {
$res = DB::connection("kingbase")->select("select * from order");
var_dump(111);
var_dump($res);
}catch (Exception $e)
{
var_dump(222);
var_dump($e->getMessage());
}
// echo 'HelloWorld';
}原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。