您好,欢迎访问三七文档
InsertPictureHerePHP/Oracle体验:为可伸缩性而构建KuassiMensahJava平台组,组产品经理:为可伸缩性而构建9PHPwPHP是什么w灵活的Web开发wOracle数据库w将Oracle与PHP结合使用wPHP/Oracle:为高性能和可伸缩性而构建w新增功能PHP是什么?•最流行的脚本语言•简单/通用•继Java、C和C++之后最流行的语言•动态类型•PHP5具有面向对象功能•免费•开放源代码•BSD式许可•多平台•应用广泛,拥有强大的社区•2000多万个站点在使用PHPPHP实现了灵活的Web开发•快速、循环使用和具有生产质量的应用程序开发•高性能、大规模Web应用程序开发•现有/异构系统的集成式Web前端•出色的文本和XML处理•Web2.0、Web服务和SOA基本PHP示例htmlheadBasicPHPExample/headbodypAgent:Sowhodoyouthinkyouare?p/?php//printoutputecho'IamNeo,butpeoplecallmeTheOne.';?/bodyPHP扩展NET函数、特定于Apache的函数、AlternativePHPCache、高级PHP调试器、数组函数、Aspell函数[不建议使用]、BCMath任意精度数学函数、PHP字节码编译器、Bzip2压缩函数、日历函数、CCVSAPI函数[不建议使用]、类/对象函数、Classkit函数、ClibPDF函数、COM和.Net(Windows)、Crack函数、字符类型函数、CURL、客户端URL库函数、Cybercash支付函数、CreditMutuelCyberMUT函数、CyrusIMAP管理函数、日期和时间函数、DB++函数、数据库(dbm样式)提取层函数、dBase函数、DBM函数[不建议使用]、dbx函数、直接IO函数、目录函数、DOM函数、DOMXML函数、enchant函数、错误处理和记录函数、Exif函数、期望函数、文件更改监视器函数、表单数据格式函数、Fileinfo函数、filePro函数、Filesystem函数、过滤器函数、Firebird/InterBase函数、Firebird/Interbase函数(PDO_FIREBIRD)、FriBiDi函数、FrontBase函数、FTP函数、功能处理函数、GeoIP函数、Gettext、GMP函数、gnupg函数、Net_Gopher、散列函数、HTTP、Hyperwave函数、HyperwaveAPI函数、IBMDB2、Cloudscape和ApacheDerby函数、ICAP函数[已删除]、iconv函数、ID3函数、IIS管理函数、图像函数、IMAP、POP3和NNTP函数、Informix函数、Informix函数(PDO_INFORMIX)、IngresII函数、IRC网关函数、PHP/Java集成、JSON函数、KADM5、LDAP函数、libxml函数、LotusNotes函数、LZF函数、邮件函数、mailparse函数、数学函数、MaxDBPHP扩展、MCAL函数、Mcrypt加密函数、MCVE(Monetra)支付函数、Memcache函数、Mhash函数、Mimetype函数、适用于Flash的Ming函数、Miscellaneous函数、mnoGoSearch函数、MicrosoftSQLServer函数、MicrosoftSQLServer和Sybase函数(PDO_DBLIB)、Mohawk软件会话处理器函数、mSQL函数、多字节字符串函数、muscat函数、MySQL函数、MySQL函数(PDO_MYSQL)、MySQLImprovedExtension、Ncurses终端屏幕控制函数、网络函数、Newt函数、特定于NSAPI的函数、对象聚合/组合函数、对象属性和方法调用过载、Oracle函数、ODBC函数(已统一)、ODBC和DB2函数(PDO_ODBC)、oggvorbis、OpenAL音频绑定、OpenSSL函数、Oracle函数[不建议使用]、Oracle函数(PDO_OCI)、输出控制函数、OvrimosSQL函数、Paradox文件访问、Parsekit函数、进程处理函数、正则表达式函数(Perl-Compatible)、PDF函数、PDO函数、PHPOptions&Information、POSIX函数、正则表达式函数(扩展了POSIX)、PostgreSQL函数、PostgreSQL函数(PDO_PGSQL)、打印机函数、程序执行函数、PostScript文档创建、Pspell函数、qtdom函数、Radius、Rar函数、GNUReadline、GNURecode函数、RPM标题读取函数、runkit函数、SatelliteCORBA客户端扩展[不建议使用]、SDO函数、SDOXML数据访问服务函数、SDO关系数据访问服务函数、Semaphore、共享内存和IPC函数、SESAM数据库函数、PostgreSQL会话保存处理程序、会话处理函数、共享内存函数、SimpleXML函数、SNMP函数、SOAP函数、套接字函数、标准PHP库(SPL)函数、SQLite函数、SQLite函数(PDO_SQLITE)、安全Shell2函数、统计函数、流函数、字符串函数、ShockwaveFlash函数、Sybase函数、TCPWrappers函数、Tidy函数、Tokenizer函数、Unicode函数、URL函数、变量处理函数、VerisignPayflowPro函数、vpopmail函数、W32api函数、WDDX函数、win32ps函数、win32service函数、xattr函数、xdiff函数、XMLParser函数、XML-RPC函数、XMLReader函数、xmlwriter函数、XSL函数、XSLT函数、YAZ函数、YP/NIS函数、Zip文件函数、Zlib压缩函数。PHP/Oracle:为可伸缩性而构建•PHP9Oracle数据库•将Oracle与PHP结合使用•PHP/Oracle:为高性能和可伸缩性而构建•新增功能OracleOracle数据库管理所有类型的数据•关系•对象-关系•文本•XML•多介质•空间•“内容”健壮的企业服务•数据完整性•并发•事务•安全性功能齐备•SQL、PL/SQL•RAC/HA•XML数据库•规则引擎•表达式过滤器•分析函数•正则表达式•虚拟专用数据库•分区•LOB和BFILE•流/AQ可伸缩性•会话体系结构PHP/OraclePHP•最流行的Web脚本语言Oracle•最流行的企业RDBMSPHP和Oracle相结合•灵活的、可伸缩的Web应用程序•完整的、丰富的、健壮的企业服务和可伸缩的数据服务器PHP/Oracle:为可伸缩性而构建•PHP•Oracle9将Oracle与PHP结合使用•Oracle对PHP的承诺•它们是如何结合在一起的•OCI8扩展•PHP/Oracle:为高性能和可伸缩性而构建•新增功能Oracle对PHP的承诺•对PHP的长期承诺•成千上万的开发人员使用Oracle和PHP•Oracle参加各种PHP社区和专家组•参与PHP活动和会议•向社区提交错误修复程序•ZendCoreforOracle:与Zend共同努力•预先构建的产品包(Apache、PHP、基于OracleOCI的驱动程序)•获得改进的/重整的OCI8扩展•2005年10月发布了来自Zend的企业支持PHP/Oracle:三层Web模型Oracle数据库8i、9i或10gWeb用户中间层ApachePHPOCI8扩展Oracle客户端库8i、9i或10gOCI8扩展•示例?php$c=oci_connect('hr','hrpw','localhost/XE');$s=oci_parse($c,'selectcityfromlocations');oci_execute($s);while($r=oci_fetch_assoc($s))echo$r['CITY'].br;?简单连接[//]主机[:端口][/服务名称]OCI8扩展(续)•php.ini参数•持久性连接管理•行预取•客户端语句缓存•分发•php.net•源代码、Windows二进制文件•包括oci8扩展•PECL-PHP扩展社区库•更新包含新的oci8扩展的PHP4时很有用•ZendCoreforOracle•Linux、Solaris、Windows、AIXOCI8扩展(续)•内置的全球化支持继承自OCI•对PHP应用程序基本透明•NLS_LANG定义Oracle本地化信息•多字节字符集需要PHPmbstring或iconv库•用户ISO本地化信息从HTTPAcceptLanguage标题中获得•调用PL/SQL的PHP应用程序应将ISO本地化信息映射到NLS_LANGUAGE和NLS_TERRITORY•请参见“TheUndergroundPHPandOracleManual”了解更多信息。PHP/Oracle:为可伸缩性而构建•PHP•Oracle•将Oracle与PHP结合使用9PHP/Oracle:为高性能和可伸缩性而构建•连接管理•语句管理•事务管理•新增功能InsertPictureHere连接管理OCI8连接•非持久性连接•标准连接•多个唯一连接•持久性连接非持久性连接标准连接$c=oci_connect($username,$password,$dbname);•连接与脚本具有相同的生命周期•脚本中的另一个oci_connect()返回相同的DB连接多个唯一连接$c=oci_new_connect($username,$password,$dbname);•连接与脚本具有相同的生命周期•每个oci_new_connect()返回一个新的DB连接•用于独立的操作持久性连接$c=oci_connect($username,$password,$dbname);•脚本完成时不自动关闭•后续连接建立时速度很快•但在应用程序空闲时仍占用资源•可在php.ini中配置oci8.max_persistentoci8.persistent_timeoutoci8.ping_interval持久性连接被缓存用户:数据库:字符集:权限hr:XE:ALU32UTF8:normalsystem:XE:ALU32UTF8:sysdbaoci_pconnect()连接缓存InsertPictureHere语句管理SQL语句执行使用OCI8执行SQL语句的步骤:•分析—oci_parse•准备要执行的语句•绑定—oci_bind_by_name•在WHERE子句中有选择地绑定变量•执行—oci_execute•数据库执行该语句并缓冲结果•提取—oci_fetch_all•在数据库中有选择地检索结果PHP和Oracle之间的回程回程调整目标:尽量减少回程行预取Oracle客户端库OCI8扩展北京数据库北京伯尔尼孟买。..设置oci8.default_prefetchPHP减少回程OCI8预取行•“预取行”由Oracle在内部缓存•通过减少“回程”提高查询性能•php.ini中的默认预取大小oci8.default_prefetch=10•每个DB“回程”中的最多行数•还设置了内存限制1024*oci8.default_prefetch•还可以通过内联函数设置该值oci_set_prefetch($s,100);语句缓存:无绑定变量selectcolfromtabwherev=1selectcolfromtabwherev=2selectcolfromtabwherev=1selectcolfromtabwherev=21:selectcol
本文标题:PHPOracle
链接地址:https://www.777doc.com/doc-6039658 .html