GVKun编程网logo

金仓数据库 KingbaseES 客户端编程接口指南 - PHP PDO (4. KingbaseES PDO的函数说明)

5

最近很多小伙伴都在问金仓数据库KingbaseES客户端编程接口指南-PHPPDO和4.KingbaseESPDO的函数说明这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PD

最近很多小伙伴都在问金仓数据库 KingbaseES 客户端编程接口指南 - PHP PDO 4. KingbaseES PDO的函数说明这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PDO:PDO 简介、Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php、PDO 连接 mysql8.0 报 PDO::__construct (): Server sent charset (255) unknown to the client. Please, report...、PDO+Access[密码] PDO+Mysql PHP PDO数据库驱动 常用操作 高性能 切换库等相关知识,下面开始了哦!

本文目录一览:

金仓数据库 KingbaseES 客户端编程接口指南 - PHP PDO (4. KingbaseES PDO的函数说明)

金仓数据库 KingbaseES 客户端编程接口指南 - PHP PDO (4. KingbaseES PDO的函数说明)

4. KingbaseES PDO的函数说明

本章节介绍了PDO的组成模块,以及KingbaseES实现PHP数据对象接口的PDO_KDB函数用法。

  • PDO标准模块

  • KingbaseES函数(PDO_KDB)

4.1. PDO标准模块

具体参考PHP标准手册,主要分为以下几部分。

  1. PDO 类

    代表 PHP 和数据库服务之间的一个连接,更多信息请参见PHP官网文档 。

  2. PDOStatement 类

    代表一条预处理语句,并在该语句被执行后返回一个相关的结果集,更多信息请参见PHP官网文档。

  3. PDOException 类

    代表一个由 PDO 产生的错误。在正确的代码中不应抛出一个 PDOException 异常。关于 PHP 异常的更多信息请参见PHP官网文档。

4.2. KingbaseES函数(PDO_KDB)

PDO_KDB是一个驱动程序,它实现了PHP数据对象(PDO)接口, 以此支持从PHP到KingbaseES数据库的访问。

  1. DSN

    语法格式:

    $dsn = ''kdb:host=localhost;dbname=TEST;port=54321'';

    功能:

    连接到KingbaseES数据库。

  2. kdbCopyFromArray

    语法格式:

    public bool PDO::kdbCopyFromArray ( string $table_name , array
    $rows [, string
    $delimiter = ''\t'' [, string $null_as = "\\\\N" [, string $fields
    ]]] )

    功能:

    将数据从PHP数组复制到表中。

  3. kdbCopyFromFile

    语法格式:

    public bool PDO::kdbCopyFromFile ( string $table_name , string
    $filename [, string
    $delimiter = ''\t'' [, string $null_as = "\\\\N" [, string $fields
    ]]] )

    功能:

    将文件中的数据复制到表中 。

  4. kdbCopyToArray

    语法格式:

    public array PDO::kdbCopyToArray ( string $table_name [, string
     $delimiter
    = ''\t'' [, string $null_as = "\\\\N" [, string $fields ]]] )

    功能:

    将数据库表中的数据复制到PHP数组中 。

  5. kdbCopyToFile

    语法格式:

    public bool PDO::kdbCopyToFile ( string $table_name , string
    $filename
    [, string $delimiter = ''\t'' [, string $null_as = "\\\\N" [,
    string $fields ]]] )

    功能:

    将表中的数据复制到文件中 。

  6. kdbLOBCreate

    语法格式:

    public string PDO::kdbLOBCreate ( void )

    功能:

    创建一个新的大对象 。

  7. kdbLOBOpen

    语法格式:

    public resource PDO::kdbLOBOpen ( string $oid [, string $mode = "rb" ] )

    功能:

    打开现有的大型对象流 。

  8. kdbLOBUnlink

    语法格式:

    public bool PDO::kdbLOBUnlink ( string $oid )

    功能:

    删除大对象 。

1、PDO:PDO 简介

1、PDO:PDO 简介

Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

如何解决Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

我正在尝试在 pdo pgsql(第二个数据库)中插入数据,但我很清楚这个注意:试图获取非对象的属性。文件名:pdo/pdo_driver.PHP。

这是我与数据库的连接:

with open(file_path) as csv_file:
    data_source = csv.reader(csv_file,delimiter='','')
    with open(output_path + ''results.csv'',''w'',newline='''') as results_file:
        data_sink = csv.writer(results_file) #This is the important line
        for line in data_source:
            data_sink.writerow(line)

在我的模型中,我有这个功能(这里只是重要的东西,不完整):

$active_group = ''default'';
$query_builder = TRUE;

$db[''pdo_email''] = array(
    ''hostname'' => ''pgsql:host=00.00.00.00;dbname=db_name;port=5432'',''username'' => ''user'',''password'' => ''password'',''database'' => ''db_name'',''dbdriver'' => ''pdo'',''dbprefix'' => '''',''pconnect'' => FALSE,''db_debug'' => (ENVIRONMENT !== ''production''),''cache_on'' => FALSE,''cachedir'' => '''',''char_set'' => ''utf8'',''dbcollat'' => ''utf8_general_ci'',''swap_pre'' => '''',''encrypt'' => FALSE,''compress'' => FALSE,''stricton'' => FALSE,''failover'' => array(),''save_queries'' => TRUE
);

解决方法

我使用 POSTGRES 的数据库连接设置:

$active_group = ''default'';
$query_builder = TRUE;

    $db[''default''] = array(
        ''dsn''   => '''',''hostname'' => ''pgsql:host=localhost;dbname=Absences_DB'',''username'' => ''postgres'',''password'' => ''marc'',''database'' => ''Absences_DB'',''dbdriver'' => ''pdo'',''dbprefix'' => '''',''pconnect'' => FALSE,''db_debug'' => (ENVIRONMENT !== ''production''),''cache_on'' => FALSE,''cachedir'' => '''',''char_set'' => ''utf8'',''dbcollat'' => ''utf8_general_ci'',''swap_pre'' => '''',''encrypt'' => FALSE,''compress'' => FALSE,''stricton'' => FALSE,''failover'' => array(),''save_queries'' => TRUE
     );

您应该验证是否在 php.ini 文件中启用了 pdo 驱动程序

PDO 连接 mysql8.0 报 PDO::__construct (): Server sent charset (255) unknown to the client. Please, report...

PDO 连接 mysql8.0 报 PDO::__construct (): Server sent charset (255) unknown to the client. Please, report...

安装 mysql8.0 之后,尝试使用 php 连接 mysql,总是报 PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers 错误,网上找了很多资料,然而都没有多大用处。

查找了 mysql 官方说明文档才知道原来 M8.0 已经已经把默认字符集升级成 ut8mb4 了,于是找到 my.cnf 文件,修改如下:

 1 [client]
  2 port = 3306
  3 socket = /tmp/mysql.sock
  4 default-character-set = utf8
  5 
  6 [mysql]
  7 prompt="MySQL [\d]> "
  8 no-auto-rehash
  9 default-character-set = utf8
 10 
 11 [mysqld]
 12 port = 3306
 13 socket = /tmp/mysql.sock
 14 default_authentication_plugin = mysql_native_password
 15 collation-server = utf8_unicode_ci
 16 
 17 basedir = /usr/local/mysql
 18 datadir = /data/mysql
 19 pid-file = /data/mysql/mysql.pid
 20 user = mysql
 21 bind-address = 0.0.0.0
 22 server-id = 1
 23 
 24 init-connect = ''SET NAMES utf8''
 25 character-set-server = utf8

 然后使用 PDO 连接 mysql

$db = array(  
    ''host'' => ''your host'',         //设置服务器地址  
    ''port'' => ''3306'',              //设端口   
    ''dbname'' => ''your db name'',    //设置数据库名        
    ''username'' => ''your name'',     //设置账号  
    ''password'' => ''your pwd'',      //设置密码  
    ''charset'' => ''utf8'',           //设置编码格式  
    ''dsn'' => ''mysql:host=your host;dbname=your db name;port=3306;charset=utf8'',   
);  
  
//连接  
$options = array(  
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,     //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)  
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,   // 默认是PDO::FETCH_BOTH, 4  
);  
  
try{  
    $pdo = new PDO($db[''dsn''], $db[''username''], $db[''password''], $options);
    var_dump($pdo);  
}catch(PDOException $e){  
    die(''数据库连接失败:'' . $e->getMessage());  
}

结果如下:

object(PDO)#1 (0) { }

PDO+Access[密码] PDO+Mysql PHP PDO数据库驱动 常用操作 高性能 切换库

PDO+Access[密码] PDO+Mysql PHP PDO数据库驱动 常用操作 高性能 切换库

<?php
class DB extends PDO {
	public function __construct($host, $username, $password, $database, $port = ''3306'', $charset = ''UTF8'') {
		$driverOptions = array (
				PDO::ATTR_PERSISTENT => true,
				PDO::ATTR_CASE => PDO::CASE_LOWER,
				PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
				PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
		);
		if ($host) {
			$dsn = ''mysql:host='' . $host . '';dbname='' . $database . '';charset='' . $charset . '';port='' . $port . '''';
		} else {
			$dsn = ''odbc:driver={microsoft access driver (*.mdb)};dbq='' . realpath ( $database ) . '';PWD='' . $password;
		}
		try {
			return parent::__construct ( $dsn, $username, $password, $driverOptions );
		} catch ( PDOException $e ) {
			echo $e->getMessage ();
		}
	}
	public function fetchAll($query, $parameters = array(), $type = PDO::FETCH_ASSOC) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$rows = $rs->fetchAll ( $type );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $rows;
	}
	public function fetchRow($query, $parameters = array(), $type = PDO::FETCH_ASSOC) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$row = $rs->fetch ( $type );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $row;
	}
	public function fetchValue($query, $parameters = array()) {
		return $this->fetchRowValue ( $query, $parameters, 0 );
	}
	public function fetchRowValue($query, $parameters = array(), $column = 0) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$row = $rs->fetchColumn ( $column );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $row;
	}
	public function update($query, $parameters) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		return $rs->rowCount ();
	}
	public function insert($query, $parameters = array()) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		return $this->lastInsertId ();
	}
	public function prepareAndExecute($query, $parameters = array()) {
		$rs = $this->prepare ( $query );
		$rs->execute ( $parameters );
		return $rs;
	}
}

$Mysql = new DB ( ''localhost'', ''root'', ''123456'', ''wordpress'' );
$Access = new DB ( false, false, ''1234567890'', ''content.mdb'' );

var_dump ( $Mysql->getAttribute ( PDO::ATTR_DRIVER_NAME ) );
echo ''<hr />'';//py by http://my.oschina.net/cart/
var_dump ( $Access->getAttribute ( PDO::ATTR_DRIVER_NAME ) );




今天关于金仓数据库 KingbaseES 客户端编程接口指南 - PHP PDO 4. KingbaseES PDO的函数说明的分享就到这里,希望大家有所收获,若想了解更多关于1、PDO:PDO 简介、Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php、PDO 连接 mysql8.0 报 PDO::__construct (): Server sent charset (255) unknown to the client. Please, report...、PDO+Access[密码] PDO+Mysql PHP PDO数据库驱动 常用操作 高性能 切换库等相关知识,可以在本站进行查询。

本文标签: