当前位置:  编程技术>php
本页文章导读:
    ▪PHP中通过ADO调用Access数据库的方法测试不通过       我看了那篇《怎样在PHP中通过ADO调用Asscess数据库和COM程序》文章后,马上作了测试,结果失败了。伤心是不是。  怎么办?我只好去PHP官方网站求助,皇天不负有心人,终于我找到了答案.........
    ▪刚才在简化php的库,结果发现很多东西       php的ming库用来生成flash!虽然模块是试验性质的, 不过比较有趣。一张大大的表, 很有趣, 给人一种在8g的感觉。 sapi/php4activescript.dll (php5activescript.dll) - ActiveScript engine, allowing you to embed .........
    ▪smarty+adodb+部分自定义类的php开发模式       前几天把热网的后台基本弄好,腾出时间对工作总结了一下。   在设计模式上,我尝试着使用mvc模式的开发。用smarty控制显示,用case语句控制各种action,然后写好各种模块的class给action调用.........

[1]PHP中通过ADO调用Access数据库的方法测试不通过
    来源: 互联网  发布时间: 2013-11-30
我看了那篇《怎样在PHP中通过ADO调用Asscess数据库和COM程序》文章后,马上作了测试,结果失败了。伤心是不是。 

怎么办?我只好去PHP官方网站求助,皇天不负有心人,终于我找到了答案—— 

具体的解决方法如下: 
(1)下载相应的ZIP包;同MICROSOFT公司的ADO一样,该东东用PHP实现ADO同各种各样数据库打交道(太好了,所有类型的数据库都能处理)。
(2)解包,里面文件很多,不过有用的只有ohtml.inc.php和adodb.inc.php,(经我测试并不是这样)把它们复制到相应目录下(或是安装php4的缺省目录下c:\php4\peer\,或是当前运行程序目录下,视include()函数而定);
(3)然后在本机的c:\myphp目录下(iis下设置通过http://localhost/jhk来访问),造了一个名为test.mdb的access库,里头再造个experts的表……。为了通过DSN来访问,我把刚才的ACCESS库在DSN中取名test。 
(4)运行。看着说明书我造了这么个程序: 
dbtest.php,内容如下:
代码如下:
<?php 
include('tohtml.inc.php'); // load code common to ADODB  
include('adodb.inc.php'); // load code common to ADODB  
$conn = &ADONewConnection('access'); // create a connection  
$conn->PConnect('test');// connect to MySQL, agora db  
$sql = 'select name, group1 from experts';  
$rs = $conn->Execute($sql);  
rs2html($rs,'border=2 cellpadding=3',array('Customer Name','Customer ID'));  
$rs->Close(); // optional  
$conn->Close(); // optional  
?>  


然后,IE中打入:http://localhost/jhk/dbtest.php 
唉!结果出来了。 令人基本满意!! 

(5) 接着,我又想:还要设置DSN,烦不烦!绕过DSN应如何解决?因为在asp中,我习惯用conn.open("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("../nydatabase.mdb"))来处理mdb库,那速度快呀! 
?……想了又想,看了又看……。 

找找找,……,嘿嘿,终于在testdatabases.inc.php 中找到了答案! 我再把刚才的程序改编: 

代码如下:
<?php  
include('tohtml.inc.php'); // load code common to ADODB  
include('adodb.inc.php'); // load code common to ADODB  
$db = &ADONewConnection("ado_access");  
print "<h1>Connecting $db->databaseType...</h1>";  
$access = 'test.mdb';  
$myDSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;'.'DATA SOURCE='. $access . ';';.'USER ID=;PASSWORD=;';  

if (@$db->PConnect($myDSN, "", "", "")) {  
print "ADO version=".$db->_connectionID->version." 
";  
$sql = 'select name, group1 from experts';  
$rs = $db->Execute($sql);  
rs2html($rs,'border=2 cellpadding=3',array('Customer Name','Customer ID'));  
} else print "ERROR: Access test requires a Access database $access".' 
'.$db->ErrorMsg();  
?>  



运行。 
一切搞定!(经我测试实际上并不能解决问题),大家可以看下一篇,就知道了

    
[2]刚才在简化php的库,结果发现很多东西
    来源: 互联网  发布时间: 2013-11-30
php的ming库用来生成flash!虽然模块是试验性质的, 不过比较有趣。
一张大大的表, 很有趣, 给人一种在8g的感觉。
  • sapi/php4activescript.dll (php5activescript.dll) - ActiveScript engine, allowing you to embed PHP in your Windows applications.

  • sapi/php4apache.dll (php5apache.dll) - Apache 1.3.x module.

  • sapi/php4apache2.dll (php5apache2.dll) - Apache 2.0.x module.

  • sapi/php4isapi.dll (php5isapi.dll) - ISAPI Module for ISAPI compliant web servers like IIS 4.0/PWS 4.0 or newer.

  • sapi/php4nsapi.dll (php5nsapi.dll) - Sun/iPlanet/Netscape server module.

  • sapi/php4pi3web.dll (no equivalent in PHP 5) - Pi3Web server module.


表格 6-1. PHP 扩展库

扩展库 说明 注解 php_bz2.dll bzip2 压缩函数库 无 php_calendar.dll 历法转换函数库 自 PHP 4.0.3 起内置 php_cpdf.dll ClibPDF 函数库 无 php_crack.dll 密码破解函数库 无 php_ctype.dll ctype 家族函数库 自 PHP 4.3.0 起内置 php_curl.dll CURL,客户端 URL 库函数库 需要:libeay32.dll,ssleay32.dll(已附带) php_cybercash.dll 网络现金支付函数库 PHP <= 4.2.0 php_db.dll DBM 函数库 已废弃。用 DBA 替代之(php_dba.dll) php_dba.dll DBA:数据库(dbm 风格)抽象层函数库 无 php_dbase.dll dBase 函数库 无 php_dbx.dll dbx 函数库   php_domxml.dll DOM XML 函数库 PHP <= 4.2.0 需要:libxml2.dll(已附带),PHP >= 4.3.0 需要:iconv.dll(已附带) php_dotnet.dll .NET 函数库 PHP <= 4.1.1 php_exif.dll EXIF 函数库 需要 php_mbstring.dll。并且在 php.ini 中,php_exif.dll 必须在 php_mbstring.dll之后加载。 php_fbsql.dll FrontBase 函数库 PHP <= 4.2.0 php_fdf.dll FDF:表单数据格式化函数库 需要:fdftk.dll(已附带) php_filepro.dll filePro 函数库 只读访问 php_ftp.dll FTP 函数库 自 PHP 4.0.3 起内置 php_gd.dll GD 库图像函数库 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数,用 php_gd2.dll 替代。 php_gd2.dll GD 库图像函数库 GD2 php_gettext.dll Gettext 函数库 PHP <= 4.2.0 需要 gnu_gettext.dll(已附带),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附带)。 php_hyperwave.dll HyperWave 函数库 无 php_iconv.dll ICONV 字符集转换 需要:iconv-1.3.dll(已附带),PHP >=4.2.1 需要 iconv.dll php_ifx.dll Informix 函数库 需要:Informix 库 php_iisfunc.dll IIS 管理函数库 无 php_imap.dll IMAP,POP3 和 NNTP 函数库 无 php_ingres.dll Ingres II 函数库 需要:Ingres II 库 php_interbase.dll InterBase functions 需要:gds32.dll(已附带) php_java.dll Java 函数库 PHP <= 4.0.6 需要:jvm.dll(已附带) php_ldap.dll LDAP 函数库 PHP <= 4.2.0 需要 libsasl.dll(已附带),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附带) php_mbstring.dll 多字节字符串函数库 无 php_mcrypt.dll Mcrypt 加密函数库 需要:libmcrypt.dll php_mhash.dll Mhash 函数库 PHP >= 4.3.0 需要:libmhash.dll(已附带) php_mime_magic.dll Mimetype 函数库 需要:magic.mime(已附带) php_ming.dll Ming 函数库(Flash) 无 php_msql.dll mSQL 函数库 需要:msql.dll(已附带) php_mssql.dll MSSQL 函数库 需要:ntwdblib.dll(已附带) php_mysql.dll MySQL 函数库 PHP >= 5.0.0 需要 libmysql.dll(已附带) php_mysqli.dll MySQLi 函数库 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附带) php_oci8.dll Oracle 8 函数库 需要:Oracle 8.1+ 客户端库 php_openssl.dll OpenSSL 函数库 需要:libeay32.dll(已附带) php_oracle.dll Oracle 函数库 需要:Oracle 7 客户端库 php_overload.dll 对象重载函数库 自 PHP 4.3.0 起内置 php_pdf.dll PDF 函数库 无 php_pgsql.dll PostgreSQL 函数库 无 php_printer.dll 打印机函数库 无 php_shmop.dll 共享内存函数库 无 php_snmp.dll SNMP 函数库 仅用于 Windows NT! php_soap.dll SOAP 函数库 PHP >= 5.0.0 php_sockets.dll Socket 函数库 无 php_sybase_ct.dll Sybase 函数库 需要:Sybase 客户端库 php_tidy.dll Tidy 函数库 PHP >= 5.0.0 php_tokenizer.dll Tokenizer 函数库 自 PHP 4.3.0 起内置 php_w32api.dll W32api 函数库 无 php_xmlrpc.dll XML-RPC 函数库 PHP >= 4.2.1 需要 iconv.dll(已附带) php_xslt.dll XSLT 函数库 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附带)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附带)。 php_yaz.dll YAZ 函数库 需要:yaz.dll(已附带) php_zip.dll Zip 文件函数库 只读访问 php_zlib.dll ZLib 压缩函数库 自 PHP 4.3.0 起内置
接下来看重要的 PHP 扩展配置部分,找到 Dynamic Extensions ,往下一点是 Windows Extensions 的配置部分。可以看到如:
 
;extension=php_bz2.dll
;extension=php_cpdf.dll
……
;extension=php_yaz.dll
;extension=php_zip.dll
 
这里列出了 PHP 的所有可支持扩展,前面都加了分号注释掉,表示目前 PHP 配置不支持该扩展,我们可以将分号去掉以便让 PHP 支持这些扩展,但是因为 dlls 文件夹里没有包含全部可扩展库的 DLL 文件,所以我们只能选择性的安装,需要知道如何获得其他 dlls 文件夹下没有提供的 dll 文件,可以查看《PHP 中文手册》(后面会提到它的下载方法)的相关部分。这里不做说明。
下面提几个 dlls 文件夹下包含的、比较实用的 PHP 扩展:
extension=php_curl.dll : CURL 扩展支持。
extension=php_gd2.dll : GD 图像库扩展支持。包括生成图像等的一系列函数,比较有用。
extension=php_ming.dll : Ming 库扩展支持,该扩展提供生成 flash 文件的相关函数,支持 flash 4 的大部分功能。
extension=php_pdf.dll : PDF 库扩展支持,该扩展提供操作 PDF 文件的函数的支持。
extension=php_xslt.dll : 提供 XSLT 扩展支持,该扩展提供对 XML 的转换。
以下列出默认情况下所有支持的 DLL 扩展的配置,去掉分号的表示支持,我们所要做的只是判断是否去掉分号而已。如果你暂时不知道你需要哪些扩展,那么避免麻烦就按照最大化安装,相应行应做如下设置:
 
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
;extension=php_pgsql.dll
extension=php_printer.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll
 
找到 [Session] 部分,我们这里只修改一个参数 session.save_path ,默认是 /tmp ,我们将其指向 C:/TEMP/ 目录(用斜杠或反斜杠来表示路径在 PHP 中是一致的),记得在 C 盘根目录下建立一个名为 temp 的文件夹:
 
session.save_path = “C:/temp/”
 
这个是设置会话的存放路径的。OK,php.ini 文件的配置告一段落,Ctrl+s 保存文件后关闭记事本。

    
[3]smarty+adodb+部分自定义类的php开发模式
    来源: 互联网  发布时间: 2013-11-30
前几天把热网的后台基本弄好,腾出时间对工作总结了一下。
  在设计模式上,我尝试着使用mvc模式的开发。用smarty控制显示,用case语句控制各种action,然后写好各种模块的class给action调用。这样做的确对代码的控制强了一点,比如在class.message.php中写上getAllMsg()函数,那么这个函数就可以被许多action调用。再配上分页类。在对数据的处理上还算灵活。 
 
代码如下:
$db=new Db; 
 $sql="select * from com_info,hr_info where hr_info.ci_id=com_info.id and {$cate} like '%{$content}%'"; 
 $totalArr=$db->execute($sql); 
 $url="hr.php?op=searchHrInfoAction&cate={$cate}&content=".urlencode($content); 
 $totalItems=count($totalArr); 
 $currentPageNumber=(isset($_GET['page']))?$_GET['page']:1; 
 $pageNav=new PageNumber($currentPageNumber,$totalItems,3,3,$url); 
 $currentPageRs=$pageNav->getRsPerPage(&$totalArr); 
 $pageNavigation=$pageNav->getPageNumber(); 
 $smarty->assign("pageNavigation",$pageNavigation); 
 $smarty->assign("hr",$currentPageRs); 
 $smarty->display("hr_get.htm");  
而且这种方式对协同开发很有帮助,代码重复率也不是很高。
但是如上代码所示,在构造各种模块的class之外,因为各种个性化查询的存在,不可避免会在control中直接使用db类(当然,这些处理也可以放在写成类放在class中,但有点显得 臃肿和做作)。
    但是光就方便而言,如果一段代码或者一个功能不被其他地方调用,完全可以把mc放在一起,保v单独就可以了,这需要对软件认真分析。下班了,回家楼。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪php获取图片的exif信息的示例代码 iis7站长之家
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3