ƵµÀÖ±´ï - רÌâ - ÐÂÎÅ - »ù´¡ - ¸ß¼¶ - °²×° - ¼¼ÇÉ - Êý¾Ý¿â - ÊÖ²á - PHP - Linux - Java - MySQL - Apache - ÂéÀ±Ìà - ÀÇÃË - RailsÉçȺ - ËÑË÷ - ÏÂÔØ - ¿ªÔ´ - ÂÛ̳
PHP¿ª·¢×ÊÔ´Íø Ö÷Ò³>>PHP»ù´¡½Ì³Ì>> ÊղشËÎÄ | Êղر¾Õ¾ | ÉèΪÊ×Ò³

PHP ADODB ÈëÃŽ̳Ì(5)

À´Ô´:www.phpres.com ×÷ÕߣºAngelover ³ö´¦£ºwww.phpres.com 2007-7-19 12:38:45 ½øÈëÌÖÂÛ×é
¹Ø ¼ü ´Ê£º PHP ADODB ÈëÃŽ̳Ì(5)

×ÊÁϼ¯¿ìÈ¡
ÏÖÔÚ£¬ADODBʹÓà CacheExecute(),CachePageExecute()¼°CacheSelectLimit()º¯ÊýÀ´Ö§³ÖÊý¾Ý¼¯¿ìÈ¡¡£Ó÷¨ÀàËÆÓÚûÓпìÈ¡µÄº¯Êý£¬³ýÁËÒª¼ÓÉÏÒ»¸öеIJÎÊý $secs2cache¡£

ÒÔÏÂÊÇÒ»¸ö·¶Àý :

include('ADOdb.inc.php'); # ¼ÓÔØADODB
$ADODB_CACHE_DIR = '/usr/ADODB_cache';
$conn = &ADONewConnection('mysql');  # ½¨Á¢Ò»¸öÁ¬½á
$conn->PConnect('localhost','userid','','agora');# Á¬½áµ½ MySQL, agora Êý¾Ý¿â
$sql = 'select CustomerName, CustomerID from customers';
$rs = $conn->CacheExecute(15,$sql);
µÚÒ»¸ö²ÎÊýÊÇÉ趨²éѯµÄ¿ìÈ¡ÃëÊý¡£Ëæºóºô½ÐµÄ²éѯ½«»áʹÓôæ·ÅÔÚÓÉ  $ADODB_CACHE_DIR ±äÁ¿Ö¸¶¨µÄ¿ìÈ¡Êý¾Ý¡£ÒªÇ¿ÆÈ²éѶִÐУ¬²¢ÇÒ¸üпìÈ¡¼Ç¼£¬Ê¹Óà CacheExecute() º¯Êý£¬²¢ÇÒ½«µÚÒ»¸ö²ÎÊýÉèΪ 0 ¡£»òÕߣ¬Ê¹Óà CacheFlush($sql) Ò²ÐС£

»ùÓÚ°²È«µÄ¿¼Á¿£¬Èç¹ûÄãҪʹÓà $ADODB_CACHE_DIR£¬ÎÒÃǽ¨ÒéÄ㽫ÔÚ php.ini ÀïµÄ register_globals Éè³É off¡£

ÔÚ ADODB 1.80°æÒÔºó£¬ÔÚ CacheSelectLimit() ¼° CacheExecute() ÖУ¬²ÎÊý secs2cache ÊÇÑ¡ÔñÐԵġ£Èç¹ûÄã²»ÌîÉÏÈ¥£¬ÏµÍ³½«»áʹÓà $connection->cacheSecs ÊôÐÔµÄÖµ£¬ËüµÄĬÈÏÖµÊÇ 60 ·ÖÖÓ¡£

       $conn->Connect(...);
        $conn->cacheSecs = 3600*24; // ¿ìÈ¡24Сʱ
        $rs = $conn->CacheExecute('select * from table');

--------------------------------------------------------------------------------

²Î¿¼ÊÖ²á
ÒÔ[]°üÆðÀ´µÄ²ÎÊýΪѡÓòÎÊý£¬¿ÉÓпÉÎÞ¡£

¹²Ïí±äÁ¿
$ADODB_COUNTRECS
µ±±¾±äÁ¿($ADODB_COUNTRECS)±»ÉèΪ true ʱ£¬Èç¹ûÊý¾Ý¿âÇý¶¯³ÌÐò½Ó¿Ú(API)²»Ö§³Ö»Ø´«±» SELECT Ö¸ÁîËùѡȡµÄÊý¾Ý±ÊÊý£¬ÄÇô RecordCount() º¯Êý½«»á×Ô¶¯·ÂÕæ£¬²¢»Ø´«ÕýÈ·µÄÊý¾Ý±ÊÊý£¬Ä¬ÈÏÖµ¼´Îª true¡£·ÂÕæ·½Ê½Êǽ¨Á¢Ò»¸öÄÚ´æÔÝ´æÇøÀ´·ÅÖÃÕâЩ×ÊÁÏ£¬Òò´Ëµ±È¡»ØµÄ×ÊÁϱÊÊýºÜ´óʱ£¬»áÕ¼ÓúܴóÁ¿µÄÄÚ´æ¡£µ±É趨±¾±äÁ¿ÖµÎª false ʱ£¬»áÓÐ×îºÃµÄЧÄÜ¡£±¾±äÁ¿ÔÚÿ´ÎÖ´ÐвéѶʱ¶¼»á×Ô¶¯¼ì²é£¬ËùÒÔÄã¿ÉÒÔÒÀʵ¼ÊÐèÒªÔÚÿ´Î²éѯǰ½øÐÐÉ趨¡£

$ADODB_CACHE_DIR
Èç¹ûÄãʹÓÃÁË×ÊÁϼ¯¿ìÈ¡¹¦ÄÜ£¬ÄÇôÄÇЩ¿ìÈ¡×ÊÁ϶¼»á±»Ö÷ŵ½Õâ¸ö±äÁ¿ËùÖ¸¶¨µÄĿ¼Àï¡£ËùÒÔµ±ÄãҪʹÓÃÖîÈç CacheExecute() º¯Êýǰ£¬ÄãÓ¦¸ÃÒªÏÈÉ趨ºÃ±¾±äÁ¿¡£ÆÚÓÚ°²È«µÄ¿¼Á¿£¬Èç¹ûÄãҪʹÓà $ADODB_CACHE_DIR£¬ÎÒÃǽ¨ÒéÄ㽫ÔÚ php.ini ÀïµÄ register_globals Éè³É off¡£

$ADODB_FETCH_MODE
Õâ¸ö¹²Ïí±äÁ¿¾ö¶¨ÁË×ÊÁϼ¯ÒÔÄÇÖÖ·½Ê½½«×ÊÁÏ´«¸øÊý×é¡£Êý¾Ý¼¯ÔÚ±»½¨Á¢Ê±(Èç Execute()»òSelectLimit())»á°Ñ±¾±äÁ¿($ADODB_FETCH_MODE)µÄÖµ±£´æÏÂÀ´£¬¶øËæºó±¾±äÁ¿($ADODB_FETCH_MODE)µÄÈκθı䶼²»»áÓ°Ïìµ½ÏÖ´æµÄ×ÊÁϼ¯£¬Ö»ÓÐÔÚÒÔºó×ÊÁϼ¯±»½¨Á¢ÆðÀ´Ê±²Å»á¸Ä±ä¡£

ÒÔÏÂΪΪÒѶ¨ÒåµÄ³£Êý£º

define('ADODB_FETCH_DEFAULT',0);
define('ADODB_FETCH_NUM',1);
define('ADODB_FETCH_ASSOC',2);
define('ADODB_FETCH_BOTH',3);

ÒÔÏÂΪһ¸öʹÓõÄÀý×Ó£º

       $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
        $rs1 = $db->Execute('select * from table');
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
        $rs2 = $db->Execute('select * from table');
        print_r($rs1->fields); # ÏÔʾ array([0]=>'v0',[1] =>'v1')
        print_r($rs2->fields); # ÏÔʾ array(['col1']=>'v0',['col2'] =>'v1')
ÔÚ±¾·¶ÀýÖУ¬ÈçÄãËù¼ûÁ½¸öÊý¾Ý¼¯ÔÚ±»Execute()½¨Á¢Ê±£¬»áÒÀ¾Ý $ADODB_FERCH_MODE µÄÖµÀ´¾ö¶¨´¢´æ¼°Ê¹ÓõĴæÈ¡Ä£Ê½¡£

Èç¹ûûÓÐÈκεÄģʽ±»É趨£¬Ä¬ÈÏÖµÔòÊÇ ADODB_FETCH_DEFAULT¡£³ÊÏÖµÄģʽÔòÒÀ¾ÝÊý¾Ý¿âÇý¶¯³ÌÐò¶øÓÐËù²»Í¬¡£ÎªÁË¿ÉÒÆÖ²ÐÔ£¬ÎÒÃǽ¨ÒéÄã¹Ì¶¨Îª ADODB_FETCH_NUM ¼° ADODB_FETCH_ASSOC£¬ÒòΪÓÐÐí¶àÇý¶¯³ÌÐò²¢²»Ö§³Ö ADODB_FETCH_BOTH ¡£


--------------------------------------------------------------------------------

ADOConnection
ÌṩÁ¬½áÊý¾Ý¿â£¬Ö´ÐÐSQLÖ¸ÁîÒÔ¼°Ò»×é×¼¸ñʽ»¯µÄSQLÏà¹Øº¯ÊýµÈ¹¦ÄܵĶÔÏó¡£
ADOConnection ÊôÐÔ
databaseType: ÒªÁ¬½áµÄÊý¾Ý¿âϵͳÃû³Æ£¬Èç odbc,mssql,mysql…µÈ¡£ÏêϸÄÚÈÝÇë²Î¿¼ÉÏ±í¡£

dataProvider: ϲãµÄÊý¾Ý¿â½á½á»úÖÆ£¬³ýÁËʹÓà odbc »ò ado Í⣬һ°ãÕý³£»áÉèΪ  native¡£

host: Êý¾Ý¿âÖ÷»úÃû³Æ£¬¿ÉÓÃIP»òÀ´Ô´Ãû³Æ(DSN)½øÐÐÁ¬½á¡£Èç203.74.225.22 , dbs1.nukepro.com , "localhost" , "odbc_dsn1"

database: Êý¾Ý¿â»òÁ¬½áÃû³Æ£¬Èç¹ûʹÓÃÁË ado£¬Ôò»á¿ØÖÆ ado ×ÊÁÏÌṩÇý¶¯³ÌÐò(ado data provider)¡£

user: µÇÈëʱµÄ ID£¬ÃÜÂëÔò»ùÓÚ°²È«¿¼Á¿Ã»Óб£Áô¡£

raiseErrorFn: ÔÊÐíÄ㶨ÒåÒ»¸ö´íÎó´¦Àíº¯Êý£¬Çë²Î¿¼ ADOdb-errorhandler.inc.php µÄ·¶Àý.

debug: ±»É趨Ϊ true ʱ£¬»áÏÔʾ³ý´íѶϢ¡£

concat_operator: Á¬½á²Ù×÷Êý£¬Ò»°ã»áÉèΪ '+' »ò '||'¡£Õâ¸ö²Ù×÷ÊýÊÇΪÁËÔÚ SQL ÀïÁ¬½á×Ö·û´®µÄ¡£»áÔÚConcat º¯ÊýÖб»Óõ½¡£

fmtDate: ÈÕÆÚ¸ñʽ£¬ÔÚDBDateº¯ÊýÖлáʹÓõ½£¬×öΪËÍÈÕÆÚ×ÊÁϵ½Êý¾Ý¿âµÄÒÀ¾Ý¡£ÔÚAccess¸ñʽΪ'#Y-m-d#'£¬ÔÚMySQL¸ñʽΪ"\Y-m-d\"¡£

fmtTimeStamp: ʱ¼ä¸ñʽ£¬ÔÚ DBTimeStamp º¯ÊýÖÐÒªËÍʱ¼ä×ÊÁϵ½Êý¾Ý¿âʱ»áʹÓõ½¡£

true: ×ÊÁÏÖÐÕæÖµµÄ±íÏÖ·½Ê½£¬ÈçÔÚFoxproÓÃ'T'£¬MS SQLÓÃ'1'¡£

false: ×ÊÁÏÖмÙÖµµÄ±íÏÖ·½Ê½£¬ÈçÔÚFoxproÓÃ'F'£¬MS SQLÓÃ'0'¡£

replaceQuote: Õâ¸ö×Ö·û´®ÓÃÀ´´¦ÀíÒݳö·ûºÅ¡£ÀýÈçÔÚ Microsoft SQL ÀïµÄË«ÒýºÅ£¬MySQLÀïµÄ·´Ð±Ïß·ûºÅ¡£Ö÷ҪʹÓÃÓÚ qstr ¡£

autoCommit: É趨ÊÇ·ñ¼¤»î×Ô¶¯½»Ò×ģʽ£¬Ä¬ÈÏֵΪ true¡£

charSet: É趨ʹÓõÄ×Ö·û¼¯£¬Ä¿Ç°Ö»ÓÐ interbase Ö§³Ö¡£

metaTablesSQL: ʹÓÃSQLÖ¸ÁÒԻش«Ò»·Ý¿ÉÓõÄÊý¾Ý±íÇåµ¥¡£ÀýÈçÔÚ MySQL ÀïµÄ SHOW TABLES¡£

genID: Èç¹ûÊý¾Ý¿âÓÐÖ§³ÖµÄ»°£¬ÕâÀï»á´æ·ÅÓÉGetID()ËùÈ¡µÃµÄ×îºóÖµ¡£

cacheSecs: ¿ìÈ¡×ÊÁϼ¯µÄÃëÊý¡£ÓÃÓÚµ±Ê¹ÓÃÕßÀûÓà CacheExecute() »ò CacheSeletLimit() º¯Êý£¬ÓÖûÓÐÉ趨 $secs2cache ²ÎÊýʱµÄĬÈÏÖµ¡£

sysDate: ÀûÓÃÊý¾Ý¿âº¯ÊýȥȡµÃĿǰµÄÈÕÆÚºÍʱ¼ä¡£»áʹÓõ½Ô­ÉúµÄÈÕÆÚʱ¼ä±ê¼Ç¸ñʽ¡£


--------------------------------------------------------------------------------

»¶Ó­½øÈëPHP¿ª·¢×ÊÔ´ÂÛ̳ÌÖÂÛ¡£
¡¾ÊղشËÎÄ¡¿¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿¡¾¹Ø±Õ¡¿
Ïà¹ØÎÄÕÂ
ͼÎÄÍÆ¼ö
ÂÛ Ì³ ×Ê Ô´
PHP¿ª·¢×ÊÔ´Íø·Ü¶·Ä¿±ê
ÔĶÁÅÅÐУº
ÈÈÃż¼ÊõÎĵµ
×îÐÂͼÎĵµ
±¾Õ¾±à¼­ÍƼö:(±¾Õ¾¿ªÍ¨Delphi4PHP×¨Çø£¬»¶Ó­½øÈëÂÛ̳½»Á÷£¡)
±à¼©×î½ü¸üÐÂÎÄÕÂ
ÍøÕ¾ÔÞÖúÉÌ
ËÑË÷Äú¸ÐÐËȤµÄÄÚÈÝ
 
  ¡¡ÍøÕ¾Ê×Ò³¡¡- ¡¡ÍøÕ¾µØÍ¼¡¡- ¡¡ÍøÕ¾ºÏ×÷¡¡- ¡¡ÊÖ²áÖÐÐÄ¡¡- ¡¡Í¨ÓÃÍøÖ·¡¡- ¡¡ÍøÕ¾ÂÛ̳¡¡- ¡¡ÍøÕ¾Í¶¸å¡¡- ¡¡ÓÑÇéÁ´½Ó¡¡- ¡¡°ïÖúÖÐÐÄ
°æÈ¨ËùÓУºPHP¿ª·¢×ÊÔ´Íø © 2003-2008 ͨÓÃÍøÖ·:PHP×ÊÔ´Íø ºÏ×÷ýÌå: ÈüµÏÍøIT¼¼Êõ
»¥ÁªÍøÎ¥·¨ºÍ²»Á¼ÐÅÏ¢¾Ù±¨ÖÐÐÄ | ²»Á¼ÐÅÏ¢¾Ù±¨ÐÅÏä