导入驱动失败问题描述提示libkci没有找到分析与解决方法ldd pdo_kdb.so 文件查看是否没有找到 libkci 驱动修改环境变量LD_LIBRARY_PATH 指向金仓数据的 Server/lib 目录export LD_LIBRARY_PATHXXX/Server/lib加载 PDO_KDB 报错问题描述PHP Warning: PHP Startup: Unable to load dynamic library /usr/lib64/php/modules/pdo_kdb.so - /usr/lib64/php/modules/pdo_kdb.so: undefined symbol: pdo_raise_impl_error in Unknown on line 0分析与解决方法查看 PDO_KDB.SO 驱动在 php.ini 中加载顺序确保PDO_KDB.SO的驱动加载顺序在 php 的PDO.SO 模块之后PHP的线程安全和非线程安全问题描述KES对PHP的线程安全和非线程安全的支持情况分析与解决方法PHP发布的版本分为支持线程安全和不支持线程安全两种通过命令查看php –i|grep –i threadPDO编译依赖于PHP的configure。 所以PDO适配的时候也需要跟随PHP的配置。即如果PHP打开了Thread Safety则PDO也需要提供线程安全的版本。例如PHP 打开了线程安全PDO是没打开的版本则会报错找不到file_globals。PHP通过在configure的时候指定--enable-maintainer-zts来支持线程安全。PDO编译的时候需要依赖PHP的configure来实现线程安全与否。使用的PDO驱动与PHP版本不匹配问题描述使用的PDO驱动加载失败分析与解决方法上图表示PHP5.6.40使用了PHP5.3编译的PDO驱动导致加载失败。Module compiled with module API PHP compiled with module API不匹配。PHP5.2 API20060613 PHP5.3 API20090626 PHP5.4 API20100525 PHP5.5 API20121212 PHP5.6 API20131226 PHP7.2 API20170718Windows下使用PDO驱动的方法问题描述Windows下如何使用PDO驱动分析与解决方法将解压出的 php_pdo_kdb.dll 与 libkci.dll 放到php7ts.dll文件所在的目录因为 php_pdo_kdb.dll 需要依赖 php7ts.dll 。 此目录一般为php.exe所在的目录。修改php.ini 加入extensionC:\php-7.2.0\x64\Release_TS\php_pdo_kdb.dll请将C:php-7.2.0x64Release_TSphp_pdo_kdb.dll 修改为实际的路径。执行php -m 可以检测驱动是否加载成功。thinkphp使用过程中报函数不存在的问题问题描述分析与解决方法在使用thinkphp时用 ksql 导入kingbase.sql文件创建框架所需函数解决上述问题。通过金蝶等中间件查看驱动加载信息时看不到pdo_kdb或者pdo_pgsql的信息问题描述分析与解决方法php扩展功能的文件一般放在/lib/php/extensions/**/下在php.ini中配置是只需要将相关功能的extension功能名如果配置了功能扩展文件夹php可以识别的到该路径所以看到使用php -m可以看到功能加载信息但有些第三方代理不一定可以识别的到所在建议最好扩展放在默认路径下如何在搭建Thinkphpapachekdb环境apache环境搭建源码编译#tar httpd-*.tar.gz #cd httpd-* #configure --prefixpwd/release配置httpd.conf在conf目录中打开httpd.conf配置加载库路径找到LoadModule位置增加或者修改如下配置LoadModule php5_module modules/libphp5.so PHPIniDir /opt/php/php-5.6.40/release/libAddTypeAddType application/x-httpd-php .php配置默认访问首页最后需要增加首页文件让apache支持默认首页是index.phpIfModule dir_module DirectoryIndex index.html index.php /IfModule配置项目路径在配置文件httpd.conf中修改DocumentRoot /opt/httpd-2.2.15/release/htdocs修改DocumentRoot路径即可php环境搭建配置驱动将pdo_kdb.so、 kdb.so驱动放至 /php-5.6.40/lib/php/extensions/no-debug-non-zts-20131226 修改配置文件php.iniextension/opt/php/php-5.6.40/release/lib/php/extensions/no-debug-non-zts-20131226/pdo_pgsql.so extension/opt/php/php-5.6.40/release/lib/php/extensions/no-debug-non-zts-20131226/pgsql.sothinkphp在httpd中使用配置数据库连接下载thinkphp3.1.2完整版本加压之后拷贝至httpd/htdocs中执行index.php生成工程文件?php //开启调试模式 define(APP_DEBUG,true); //定义项目名称和路径 define(APP_NAME, app); define(APP_PATH, ./app/); // 加载框架入口文件 require( ./ThinkPHP/ThinkPHP.php);配置数据库连接打开app/Conf/config.php?php return array( URL_MODEL 3, // 如果你的环境不支持PATHINFO 请设置为3 DB_TYPE kdb DB_HOST 127.0.0.1, DB_NAME test, DB_USER system, DB_PWD , DB_PORT 54321, DB_PREFIX think_, );修改控制文件打开app/Lib/Action/IndexAction.class.php?php class IndexAction extends Action { public function index(){ $userM(Form); //大M方法访问数据表 $sql$user-select(); //thinkPHP 封装的SQL查询所有数据 echo $sql[id]; var_dump($sql[id]); var_dump($sql[title]); var_dump($sql[content1]); var_dump($sql[create_time]); ​ $data[id] 10; $data[title] ThinkPHPgmail.com; $data[content1] ThinkPHPgmail.com; $data[create_time] 15; $user-data($data)-add(); $sql$user-select(); //thinkPHP 封装的SQL查询所有数据 var_dump($sql); //打印出数据 } }