环境:
Windows 2008服务器
Apache 2.2 + php 5.3.22
首先
你用 http://localhost/phpinfo.php代码检查一下,php是Thread Safe的吗?php是VC6还是VC9编译的?
如果是VC6编译的,没戏,SAP Sybse SQL Anywhere的Windows版本PHP Module驱动都是VC9编译的。
建议
SQL Anywhere升级到最新补丁
然后
去SAP Sybse SQL Anywhere的PHP Module驱动下载驱动 http://scn.sap.com/docs/DOC-40537
注意:貌似里面的Windows驱动都是VC9(Visual Studio 2010)编译的
注意:驱动分Thread Safe和Single Threaded,
编辑php.ini
extension_dir = "ext"
extension=php-5.3.22_sqlanywhere.dll
;SQL Server 2008 driver
;extension=php_sqlsrv_53_ts.dll
;extension=php_pdo_sqlsrv_53_ts.dll
编写一个测试程序
htdocs\sqla.php
内容如下:
<html> <body> <p>Record page hits</p> <?php $conn = sasql_connect("uid=dba;pwd=sql;ServerName=afariadb;CommLinks=tcpip(host=127.0.0.1;port=2638)"); sasql_query($conn, "CREATE TABLE IF NOT EXISTS hits (hit TIMESTAMP)"); sasql_query($conn, "INSERT INTO hits VALUES(now(*))"); $result = sasql_query($conn, "SELECT TOP 10 hit FROM hits ORDER BY hit DESC"); if ($result) { echo "<table border='1'>\n"; while ($obj = sasql_fetch_object($result)) { echo "<tr>\n"; echo "<td>$obj->hit</td>\n"; echo "</tr>\n"; } sasql_free_result($result); echo "</table>\n"; } sasql_close($conn); ?> </body></html>
多次运行的结果如下:
Record page hits
2013-12-21 18:07:55.857
2013-12-21 17:24:25.565
2013-12-21 17:24:25.362
2013-12-21 17:24:25.066
2013-12-21 17:24:24.442
2013-12-21 17:24:22.913
=============================
后记:
貌似目前SAP Sybse SQL Anywhere没有相应的PHP PDO驱动
但是你可以用pdo_odbc去访问SAP Sybse SQL Anywhere数据库
参考:http://stackoverflow.com/questions/16473568/codeigniter-sybase-database-configuration