代码方面
public/framework/zhyphp/library/function/pdo.func.php(12行)-替换pdo函数
function pdo() {
global $_W;
static $db;
$is_pgsql = true;
if(empty($db)) {
// if($_W['config']['db']['slave_status'] == true && !empty($_W['config']['db']['slave'])) {
// load()->classs('slave.db');
// $db = new SlaveDb('master');
// } else {
if($is_pgsql){
require __DIR__."/../../../../../zhydb/ZhyDb.php";
$db = new \zhydb\ZhyDb($_W['config']['db']["master"]);
}else{
require __DIR__."/../class/db.class.php";
$db = new DB($_W['config']['db']);
}
// }
}
return $db;
}
public/addons/zhyshop_sun/thinkphp/library/think/db/Query.php(2229行)
public function insert(array $data = [], $replace = false, $getLastInsID = false, $sequence = null)
{
$pk = $this->getPk();
if(isset($data[$pk]) && empty($data[$pk])){
unset($data[$pk]);
}
public/addons/zhyshop_sun/thinkphp/library/think/db/Connection.php(862行)
public function getLastInsID($sequence = null)
{
$res= $this->query("SELECT last_insert_id()");
return $res;
}
public/addons/zhyshop_sun/application/model/Plugin.php(560行)--注释以下代码
//慧牛供应链-3D名片是否有导入
/* $goods = Goods::where("is_sclient_goods", 1)->where("sclient_goods_type", 0)->find();
if ($goods) {
(new Menu())->where('id', 'in', [2387])->update(['state' => 1]);
} else {
(new Menu())->where('id', 'in', [2387])->update(['state' => 0]);
}*/
public/addons/zhyshop_sun/application/admin/controller/Base.php(1312行)
由于do的关键字与kingbase冲突,所以operatinglog直接return;
public/addons/zhyshop_sun/application/database.php(27行)
'type' => 'pgsql',
复制D:\农科院项目\zhydb目录到项目根目录
public/data/dbconfig.php
<?php $dbconfig = array();
$dbconfig['host'] = '192.168.2.91';
$dbconfig['port'] = '54321';
$dbconfig['username'] = 'system';
$dbconfig['password'] = '';
$dbconfig['database'] = 'nky8';
$dbconfig['prefix'] = 'ims_';
$dbconfig['redis_host'] = '127.0.0.1';
$dbconfig['redis_password'] = null;
$dbconfig['redis_port'] = '6379';
金仓方面
- 在框架E:\project\zhyframe\app\Libs\HandleKingbase.php已经含有mysql转金仓的用法
- 金仓数据库需要有函数
其它方面
app/Providers/DatabaseServiceProvider.php(如果有使用框架要替换该文件)
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class DatabaseServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot(){
}
public function register(){
// $this->msyql_register();
$this->pgsql_register();
}
public function msyql_register(){
include __DIR__."/../../public/data/dbconfig.php";
include __DIR__."/../../public/data/dbconfig_two.php";
$config = $this->app['config']->get('database.connections.mysql');
$config["host"] = $dbconfig['host'];
$config["port"] = $dbconfig['port'];
$config["database"] = $dbconfig['database'];
$config["username"] = $dbconfig['username'];
$config["password"] = $dbconfig['password'];
$config["prefix"] = $dbconfig['prefix'];
$this->app['config']->set('database.connections.mysql', $config);
\DB::purge('mysql');
// \DB::setTablePrefix($dbconfig['prefix']);
// \DB::connection('mysql')->reconnect();
$config_two = $this->app['config']->get('database.connections.mysql_two');
$config_two["host"] = $dbconfig_two['host'];
$config_two["port"] = $dbconfig_two['port'];
$config_two["database"] = $dbconfig_two['database'];
$config_two["username"] = $dbconfig_two['username'];
$config_two["password"] = $dbconfig_two['password'];
$this->app['config']->set('database.connections.mysql_two', $config_two);
if(isset($dbconfig['redis_host'])&&isset($dbconfig['redis_port'])&&isset($dbconfig['redis_password'])){
$config_redis = $this->app['config']->get('database.redis.default');
$config_redis["host"] = $dbconfig['redis_host'];
$config_redis["port"] = $dbconfig['redis_port'];
$config_redis["password"] = $dbconfig['redis_password'];
$this->app['config']->set('database.redis.default', $config_redis);
}
}
/**
* Register any application services.
*
* @return void
*/
public function pgsql_register(){
include __DIR__."/../../public/data/dbconfig.php";
include __DIR__."/../../public/data/dbconfig_two.php";
$config = $this->app['config']->get('database.connections.pgsql');
$config["host"] = $dbconfig['host'];
$config["port"] = $dbconfig['port'];
$config["database"] = $dbconfig['database'];
$config["username"] = $dbconfig['username'];
$config["password"] = $dbconfig['password'];
$config["prefix"] = $dbconfig['prefix'];
// print_r($config);
// exit();
$this->app['config']->set('database.connections.pgsql', $config);
//\DB::purge('pgsql');
// \DB::setTablePrefix($dbconfig['prefix']);
// \DB::connection('mysql')->reconnect();
/* $config_two = $this->app['config']->get('database.connections.mysql_two');
$config_two["host"] = $dbconfig_two['host'];
$config_two["port"] = $dbconfig_two['port'];
$config_two["database"] = $dbconfig_two['database'];
$config_two["username"] = $dbconfig_two['username'];
$config_two["password"] = $dbconfig_two['password'];
$this->app['config']->set('database.connections.mysql_two', $config_two);*/
if(isset($dbconfig['redis_host'])&&isset($dbconfig['redis_port'])&&isset($dbconfig['redis_password'])){
$config_redis = $this->app['config']->get('database.redis.default');
$config_redis["host"] = $dbconfig['redis_host'];
$config_redis["port"] = $dbconfig['redis_port'];
$config_redis["password"] = $dbconfig['redis_password'];
$this->app['config']->set('database.redis.default', $config_redis);
}
}
}
vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php(145行)
$dsn = "kdb:{$host}dbname={$database}";
报找不到active_img_hz错误
app/helpers.php
if (!function_exists('active_img_hz')) {
/**
* Get the active class if the condition is not falsy
*
* @param $condition
* @param string $activeClass
* @param string $inactiveClass
*
* @return string
*/
function active_img_hz($condition, $activeClass = 's', $inactiveClass = 'u')
{
return $condition ? $activeClass : $inactiveClass;
}
}