PHP ADODB ÈëÃŽ̳Ì(5)
À´Ô´:www.phpres.com ×÷ÕߣºAngelover ³ö´¦£ºwww.phpres.com 2007-7-19 12:38:45 ½øÈëÌÖÂÛ×é
×ÊÁϼ¯¿ìÈ¡
ÏÖÔÚ£¬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: ÀûÓÃÊý¾Ý¿âº¯ÊýȥȡµÃĿǰµÄÈÕÆÚºÍʱ¼ä¡£»áʹÓõ½ÔÉúµÄÈÕÆÚʱ¼ä±ê¼Ç¸ñʽ¡£
--------------------------------------------------------------------------------
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
¡¤Ê¹ÓÃPHPαÔìsessionid×ö·Àˢй¦ÄÜ
¡¤ÓÃPHPÏÔʾͼƬµÄEXIFÐÅÏ¢
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
- ¡¤ 3·ÖÖÓ¿ìËÙÁ˽â Delphi for PHP ÌØÉ« (ÖÐÎÄ), PDFµµ
- ¡¤ ¹ºÂòDelphi for PHPµÄÎå´óÀíÓÉ, PDFµµ
- ¡¤ Delphi for PHP ʹÓùæ¸ñ½éÉÜ, PDFµµ
- ¡¤ Delphi for PHP †–´ð¼¯ (From CodeGear)
- ¡¤ Delphi for PHP ²úÆ·¼Û¸ñ±í




