µ±Ç°Î»ÖãºÊ×Ò³ > ÍøÂç±à³Ì > WEB±à³Ì > PHP > ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

µã»÷´ÎÊý£º19 ´Î ·¢²¼ÈÕÆÚ£º2008-12-24 11:45:08 ×÷ÕߣºÔ´´úÂëÍø
Ô´´úÂëÍøÍÆ¼ö

PHP Êdz£ÓÃÓÚ¿ª·¢ Web Ó¦ÓóÌÐòµÄÒ»Öֽű¾±àÖÆÓïÑÔ¡£ Asynchronous JavaScript and XML (Ajax) ÔòÊÇ×éºÏ JavaScript¡¢ Document Object Model (DOM) ºÍ XMLHttpRequest ¼¼Êõ£¬ÒÔÌṩ¿Í»§»úÓë·þÎñÆ÷Ö®¼äµÄ¶¯Ì¬½»»¥µÄÒ»ÖÖ Web ¼¼Êõ¡£ÓкܶàÓÃÓÚÓë PHP Ò»ÆðʹÓà Ajax µÄ PHP Àà¿â£¬Xajax ¾ÍÊÇÆäÖÐÒ»¸ö£¬ËüÊÇ¿ª·ÅÔ´´úÂëµÄ¡¢ÃæÏò¶ÔÏóµÄ PHP Àà¿â¡£ÔÚ±¾ÎÄÖУ¬Ñ§Ï°ÈçºÎʵÏÖ PHP¡¢Ajax ºÍ Xajax£¬ÒÔ¿ª·¢Ò»¸ö·ÃÎÊ IBM? DB2? 9 for Linux?£¬ UNIX?£¬ and Windows? µÄ¶¯Ì¬ Web Ó¦ÓóÌÐò½â¾ö·½°¸¡£

¡¡¡¡¼ò½é

¡¡¡¡Ä¿Ç°£¬³¬¹ý 40% µÄ Web Ó¦ÓóÌÐòʹÓà PHP ×÷Ϊ½Å±¾±àÖÆÓïÑÔ¡£Asynchronous JavaScript and XML (Ajax) ÊÇ×éºÏ JavaScript¡¢ Document Object Model (DOM) ºÍ XMLHttpRequest ¼¼Êõ£¬ÒÔÌṩ¿Í»§»úÓë·þÎñÆ÷Ö®¼äµÄ¶¯Ì¬½»»¥µÄÒ»ÖÖ Web ¼¼Êõ¡£ÓкܶàÓÃÓÚÓë PHP Ò»ÆðʹÓà Ajax µÄ PHP Àà¿â£¬Xajax ¾ÍÊÇÆäÖÐÒ»¸ö£¬ËüÊÇ¿ª·ÅÔ´´úÂëµÄ¡¢ÃæÏò¶ÔÏóµÄ PHP Àà¿â£¬Í¨¹ýËü¿ÉÒÔÔÚ PHP ÖÐʹÓà Ajax¡£

¡¡¡¡¾Ù¸öÀý×Ó£¬¼ÙÉèÓÐÒ»ÃûÓû§ÕýÔÚÌîдһ·Ý±íµ¥£¬ÒÔ±ãÔÚÒ»¸ö Web Õ¾µãÉÏ×¢²á¡£Í¨³££¬Ö»ÓÐÔÚÌá½»±íµ¥Ê±²Å»á¼ì²é±íµ¥Êý¾ÝµÄÓÐЧÐÔ¡£µ«ÊÇÈç¹ûʹÓà Ajax£¬½«Ê¹Ó÷þÎñÆ÷Ó¦ÓóÌÐòÖеÄÒµÎñÂß¼­¶¯Ì¬ÑéÖ¤Ìí¼Óµ½±íµ¥µÄÊý¾Ý¡£ Òò´Ë£¬²»±Ø½«Õû¸ö±íµ¥Ìá½»µ½·þÎñÆ÷ÒÔ¼ì²é±íµ¥ÖеÄÊý¾ÝÊÇ·ñÓÐЧ¡£Òì²½£¨Asynchronous£©Òâζ×Å XMLHttpRequest ¶ÔÏóµÄ send() ·½·¨¿ÉÒÔÁ¢¼´·µ»Ø£¬²»±ØµÈ´ý HTTP ÇëÇóÍê³É£¬¶ø·¢³öÇëÇóµÄ HTML/JavaScript Ò³ÃæÔò¿ÉÒÔ¼ÌÐø½øÐÐÆäËûµÄ´¦Àí¡£Òò´Ë£¬¿ª·¢ÈËÔ±¿ÉÒÔ·¢ÏÖ£¬µ± XMLHttpRequest ¶ÔÏóÒì²½µØ´¦Àí HTTP ÏìӦʱ£¬¿ÉÒÔ¼ÌÐø´¦Àí·¢³ö XMLHttpRequest ÇëÇóµÄ HTML/JavaScript Ò³Ãæ¡£

¡¡¡¡Xajax ¸ÅÊö

¡¡¡¡Xajax ÓÃÓÚÒÔ PHP ½Å±¾±àдµÄ¿Í»§»úÓ¦ÓóÌÐòºÍ·þÎñÆ÷¶ËÓ¦ÓóÌÐòÖ®¼ä½øÐÐÒì²½µÄͨÐÅ¡£¶ÔÓÚ¿ÉÄÜ´Ó¿Í»§»úÓ¦ÓóÌÐò·ÃÎʵķþÎñÆ÷¶ËµÄ PHP º¯Êý£¬Xajax Ϊ֮Éú³É JavaScript °ü×°Æ÷º¯Êý¡£µ±Ò»¸ö¿Í»§»úÓ¦ÓóÌÐòµ÷Óðü×°Æ÷º¯Êýʱ£¬»áÉú³ÉÒ»¸ö XMLHttpRequest ¶ÔÏ󣬲¢½«Ò»¸ö XMLHttpRequest HTTP ÇëÇó·¢Ë͵½·þÎñÆ÷¡£

¡¡¡¡ÔÚ·þÎñÆ÷ÉÏ£¬xajax ¶ÔÏóÊÕµ½ XMLHttpRequest£¬²¢µ÷ÓÃÓë JavaScript °ü×°Æ÷º¯Êý¶ÔÓ¦µÄ PHP º¯Êý¡£Í¨¹ý Xajax ×¢²áµÄ PHP º¯ÊýµÄĬÈÏÇëÇóÀàÐÍÊÇ POST¡£PHP º¯Êý·µ»ØÒ»¸ö XML ÏìÓ¦£¬ºóÕßÓÉ xajax ¶ÔÏ󷵻ص½¿Í»§»úÓ¦ÓóÌÐò¡£¸ù¾Ý XML ÏìÓ¦ÖеÄָʾ£¬Xajax µÄ JavaScript ÏûÏ¢±Ã¸üпͻ§»úÊäÈëÒ³ÃæµÄÄÚÈÝ¡£Xajax µÄÒ»¸öÌØÐÔ¿ÉÒÔÈ·±£Ö»ÓÐÒѾ­±»Ð޸ĵÄÊý¾Ý²Å»á±»¸üС£

¡¡¡¡Òª¿ªÊ¼´´½¨×Ô¼ºµÄ Web Ó¦ÓóÌÐò£¬ÎÒÃÇÊ×ÏÈ¿´¿´°²×°²úÆ·ºÍ´´½¨Êý¾Ý¿âµÄ²½Ö衣Ȼºó£¬Äú¾Í¿ÉÒÔÉîÈëÑо¿Ó¦ÓóÌÐòµÄ´´½¨¡£

¡¡¡¡°²×° DB2 for Linux, UNIX, and Windows

¡¡¡¡ÓÃÓÚ DB2 Êý¾Ý¿âµÄ PHP À©Õ¹¿ÉÒÔÓë DB2 for Linux, UNIX, and Windows V8.2 »ò¸ü¸ß°æ±¾Ò»ÆðʹÓá£ÏÂÃæµÄ°²×°ËµÃ÷ʹÓà DB2 Enterprise 9 for Windows£º

¡¡¡¡ÏÂÔØ DB2 9 Êý¾Ý·þÎñÆ÷£¨¼û ²Î¿¼×ÊÁÏ£©¡££¨±¾ÀýʹÓõÄÊÇ DB2 Enterprise 9£¬µ«Êµ¼ÊÉÏÒ²¿ÉÒÔʹÓÃÆäËû°æ±¾µÄ DB2¡££©

¡¡¡¡½« db2_v9_ese_win_32.zip ½âѹµ½Ò»¸öĿ¼¡£

¡¡¡¡Òª°²×° DB2£¬Ë«»÷ C:DB2ESEimagesetup.exe Ó¦ÓóÌÐò¡£

¡¡¡¡ÔÚ IBM DB2 Setup Launchpad ÖУ¬µ¥»÷ Install a Product¡£

¡¡¡¡ÔÚ DB2 Enterprise Server µÄ±êÇ©Öе¥»÷ Install New¡£Õâʱ»á³öÏÖ DB2 Setup Ïòµ¼¡£µ¥»÷ Next¡£

¡¡¡¡½ÓÊÜÐí¿ÉЭÒ飬Ȼºóµ¥»÷ Next¡£

¡¡¡¡Ñ¡ÔñÒ»ÖÖ°²×°ÀàÐÍ£¨µäÐͰ²×°£©£¬È»ºóµ¥»÷ Next¡£

¡¡¡¡Ñ¡Ôñ installation and response file creation£¨Ä¬ÈÏ£©£¬È»ºóµ¥»÷ Next¡£

¡¡¡¡Ñ¡ÔñÒ»¸ö°²×°Îļþ¼Ð£¨Ä¬ÈÏΪ C:Program FilesIBMSQLLIB£©£¬È»ºóµ¥»÷ Next¡£

¡¡¡¡Ö¸¶¨Óû§Ãû£¨db2£©ºÍÃÜÂ루db2admin£©£¬È»ºóµ¥»÷ Next¡£

¡¡¡¡DB2 ʵÀý DB2 ×÷ΪĬÈÏ DB2 ʵÀý±»ÁгöÀ´¡£Í¨¹ýµ¥»÷ Configure °´Å¥£¬¿ÉÒÔΪĬÈÏ DB2 ʵÀýÅäÖ÷þÎñÃû³ÆºÍЭÒ顣ĬÈÏ·þÎñÃû³ÆÎª db2c_DB2£¬Ä¬È϶˿ÚΪ 5000¡£µ¥»÷ Next¡£

¡¡¡¡ÔÚ Prepare the DB2 tools Àà±ð¿ò¼ÜÖÐÑ¡ÔñĬÈÏÉèÖã¬È»ºóµ¥»÷ Next¡£

¡¡¡¡ÈçÓбØÒª£¬ÉèÖÃ֪ͨ£¬È»ºóµ¥»÷ Next¡£

¡¡¡¡ÔÚ Enable operating system security for DB2 objects ÖÐÑ¡ÔñĬÈÏÉèÖã¬È»ºóµ¥»÷ Next¡£

¡¡¡¡µ¥»÷ Finish °´Å¥°²×°Êý¾Ý¿â·þÎñÆ÷¡£

¡¡¡¡ÏÖÔÚ´´½¨Ò»¸öʾÀýÊý¾Ý¿â¡£×÷ΪÏȾöÌõ¼þ£¬½« DB2INSTANCE »·¾³±äÁ¿ÉèÖÃΪ DB2£ºÑ¡Ôñ System Properties > Advanced > Environment Variables > System Variables¡£Ò²¿ÉÒÔÔÚ DB2 ÃüÁî´°¿ÚÖÐʹÓÃÒÔÏÂÃüÁîÀ´ÉèÖà DB2INSTANCE »·¾³±äÁ¿£º

set DB2INSTANCE=DB2

¡¡¡¡Òª´´½¨Ò»¸öʾÀýÊý¾Ý¿â£¬ÔÚ DB2 First Steps ¿ò¼ÜÖÐÑ¡Ôñ Database Creation¡£µ¥»÷ Create SAMPLE Database °´Å¥¡£ Ò²¿ÉÒÔʹÓÃÒÔÏÂÃüÁî´´½¨Ê¾ÀýÊý¾Ý¿â£º

db2sampl

¡¡¡¡Ê¹ÓÃÒÔÏ DB2 ÃüÁ DB2 Êý¾Ý¿â SAMPLE ×¢²áΪ ODBC Êý¾ÝÔ´£º

db2 catalog system odbc data source sample

¡¡¡¡°²×° PHP ºÍ Xajax

¡¡¡¡Xajax ÊÇÒ»¸ö PHP Àà¿â£¬Òò´ËÊ×ÏÈÏÂÔØºÍ°²×° PHP 5¡£PHP 5 ¿ÉÒÔ°²×°Ôںܶ಻ͬµÄ Web ·þÎñÆ÷ÉÏ¡£±¾ÎÄÌÖÂÛÔÚ Windows ÉÏʹÓà Apache Web ·þÎñÆ÷ÅäÖà PHP 5¡£

¡¡¡¡ÏÂÃæÊǰ²×°ºÍÅäÖà PHP µÄ²½Ö裺

¡¡¡¡ÏÂÔØ PHP 5.2.0 £¨¼û ²Î¿¼×ÊÁÏ£©¡£

¡¡¡¡½« PHP zip Îļþ½âѹµ½Ò»¸ö°²×°Ä¿Â¼ÖУ¨ÀýÈç C:/PHP£©¡£

¡¡¡¡ÏÂÔØºÍ°²×° Apache HTTP Server 2.0¡£

¡¡¡¡ÔÚ PATH »·¾³ÏµÍ³±äÁ¿ÖÐÌí¼Ó°²×° PHP 5 µÄĿ¼£¨C:/PHP£©¡£

¡¡¡¡½« C:/PHP Ŀ¼ÖÐµÄ php.init ÎļþÐÞ¸ÄΪ php.ini¡£

¡¡¡¡±¾ÎÄÖеÄʾÀýÓ¦ÓóÌÐò´Ó DB2 Êý¾Ý¿âÖдæÈ¡Êý¾Ý¡£Äú½«Ê¹Óà PHP PDO À©Õ¹Á¬½Óµ½ DB2 Êý¾Ý¿â¡£

¡¡¡¡ÔÚ php.ini ÅäÖÃÎļþÖУ¬ÐèҪͨ¹ýÖ¸¶¨ extension_dir = "./ext" ÉèÖÃÀ©Õ¹Ä¿Â¼¡£Òª¼¤»î PDO À©Õ¹£¬ÐèҪȥµô php.ini ÎļþÖÐÏÂÃæÕâÒ»ÐÐÇ°ÃæµÄ ¡®;¡¯£º

extension=php_pdo.dll

¡¡¡¡´ËÍ⻹ÐèÒª¼¤»î PDO ODBC Çý¶¯³ÌÐò¡£ÔÚ php.ini ÎļþÖУ¬È¥µôÏÂÃæÕâÒ»ÐÐÇ°ÃæµÄ ¡®;¡¯£º

extension=php_pdo_odbc.dll

¡¡¡¡½« PHP 5 °²×°ÔÚ Apache HTTP ·þÎñÆ÷ÖС£ÔÚ <Apache2>/conf/httpd.conf ÎļþÖУ¬Ìí¼Ó£º

# For PHP 5
LoadModule php5_module "C:/PHP/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/PHP/"

¡¡¡¡Ä¬ÈÏÇé¿öÏ£¬<Apache2> Ŀ¼ÊÇĿ¼ C:/Program Files/Apache Group/Apache2¡£ÎÒÃÇÒѾ­ÔÚ C:/Apache2/Apache2 Ŀ¼Öа²×°ÁË Apache2 ·þÎñÆ÷¡£Èç¹û PHP 5 ±»°²×°µ½ C:/PHP ÒÔÍâµÄĿ¼ÖУ¬ÄÇôÓÃÄǸöÄ¿Â¼Ìæ»» C:/PHP¡£ÔÚÐÞ¸Ä httpd.conf Ŀ¼֮ºó£¬ÖØÐÂÆô¶¯ Apache Web ·þÎñÆ÷¡£½«ÒªÔÚ Apache Web ·þÎñÆ÷ÖÐÔËÐÐµÄ PHP Îļþ¸´ÖƵ½ C:/Apache2/Apache2/htdocs Ŀ¼ÖС£

¡¡¡¡ÏÂÔØ Xajax 0.2.4¡£ÔÚ C:/Apache2/Apache2/htdocs Ŀ¼Öд´½¨Ò»¸ö xajax Ŀ¼¡£½« xajax_0.2.4.zip Îļþ½âѹµ½ xajax Ŀ¼ÖС£

¡¡¡¡´´½¨ DB2 Êý¾Ý¿â±í

¡¡¡¡Xajax Ó¦ÓóÌÐò´ÓÒ»¸ö DB2 Êý¾Ý¿â±íÖмìË÷Êý¾Ý¡£¿ÉÒÔÓÃÒ»¸ö PHP ½Å±¾´´½¨Õâ¸öÊý¾Ý¿â±í¡£´´½¨Ò»¸ö PHP ½Å±¾ createTable.php¡£¶¨ÒåÓÃÓÚÓû§ÃûºÍÃÜÂëµÄ±äÁ¿£º

$user = "db2";
$password = "db2admin";

¡¡¡¡Ê¹Óà PDO ¹¹Ô캯Êý»ñµÃÓë DB2 SAMPLE Êý¾Ý¿âµÄÁ¬½Ó£º

$connection = new PDO("odbc:SAMPLE", $user, $password);

¡¡¡¡Ä¬ÈÏÇé¿öÏ£¬PDO ¹¹Ô캯Êý´´½¨Ò»¸ö·Ç³Ö¾ÃµÄÁ¬½Ó¡£Èç¹ûÁ¬½Ó³É¹¦£¬Ôò PDO ¹¹Ô캯Êý·µ»ØÒ»¸ö DB2 Êý¾Ý¿âÁ¬½Ó×ÊÔ´¡£µ±Á¬½Ó³É¹¦Ê±£¬Êä³öÏûϢΪ ¡°Connection succeeded¡±¡£µ±Êý¾Ý¿âÁ¬½Óʧ°Üʱ£¬»áÊä³öÁ¬½Ó´íÎóÏûÏ¢¡£¶¨ÒåÓÃÓÚ´´½¨Ò»¸ö±íµÄ SQL Óï¾ä£º

$createtable = "CREATE TABLE DB2.Catalog(CatalogId VARCHAR(25),
Journal VARCHAR(25), Section Varchar(25), Edition
VARCHAR(25), Title Varchar(45), Author Varchar(25))";

¡¡¡¡Ê¹Óà exec() º¯ÊýÔËÐиà SQL Óï¾ä£º

$connection->exec($createtable);

¡¡¡¡¶¨ÒåÓÃÓÚÏò±íÖÐÌí¼ÓÒ»ÐÐµÄ SQL Óï¾ä£º

$addrow = "INSERT INTO DB2.Catalog VALUES("catalog1", "IBM developerWorks",¡¡
"XML", "July 2006", "The Java XPath API", "Elliotte Harold")";

¡¡¡¡Ê¹Óà exec() º¯ÊýÔËÐиà SQL Óï¾ä£º

$result=$connection->exec($addrow);

¡¡¡¡ÕâÑù¾ÍÔÚÊý¾Ý¿â±íÖÐÌí¼ÓÁËÒ»ÐС£Êä³öÏûÏ¢£¬ÒÔ±íÃ÷±»Ìí¼ÓµÄÐÐÊý£º

print("Added $result rows.n");

¡¡¡¡ÀàËÆµØ£¬½«ÁíÍâÒ»ÐÐÌí¼Óµ½Êý¾Ý¿â±í Catalog ÖУº

$addrow = "INSERT INTO DB2.Catalog VALUES("catalog2", "IBM developerWorks",¡¡
"XML", "October 2005", "JAXP validation",¡¡"Brett McLaughlin")";
$result=$connection->exec($addrow);

¡¡¡¡Çåµ¥ 1 ÖÐÏÔʾÁË PHP scriptcreateTable.php¡£½« createTable.php ¸´ÖƵ½ C:/Apache2/Apache2/htdocs Ŀ¼¡£Æô¶¯ Apache Web ·þÎñÆ÷£¨Èç¹ûûÓÐÆô¶¯µÄ»°£©¡£ÔÚÒ»¸öä¯ÀÀÆ÷ÖÐͨ¹ý URL http://localhost/createTable.php ÔËÐÐÕâ¸ö PHP ½Å±¾¡£ÕâÑù½«Éú³ÉÒ»¸öÊý¾Ý¿â±í DB2.Catalog£¬²¢ÏòÕâ¸ö±íÖÐÌí¼ÓÊý¾Ý¡£

¡¡¡¡Çåµ¥ 1. createTable.php

<?php
try {
$user = "db2";
$password = "db2admin";
$connection = new PDO("odbc:SAMPLE", $user, $password);
echo "Connection succeededn";
$createtable = "CREATE TABLE DB2.Catalog(CatalogId VARCHAR(25),
Journal VARCHAR(25), Section Varchar(25), Edition
VARCHAR(25), Title Varchar(45), Author Varchar(25))";
$connection->exec($createtable);
$addrow = "INSERT INTO DB2.Catalog VALUES("catalog1", "IBM developerWorks",¡¡
"XML", "July 2006", "The Java XPath API",¡¡
"Elliotte Harold")";
$result=$connection->exec($addrow);
print("Added $result rows.n");
$addrow = "INSERT INTO DB2.Catalog VALUES("catalog2", "IBM developerWorks",¡¡
"XML", "October 2005", "JAXP validation",¡¡
"Brett McLaughlin")";
$result=$connection->exec($addrow);
} catch (PDOException $e) {
¡¡ $e->getMessage();
}
?>

¡¡¡¡·¢ËÍÒ»¸öÇëÇó

¡¡¡¡ÏÖÔÚÎÒÃÇÀ´¿ª·¢°üº¬Ò»¸öÊäÈë±íµ¥µÄʾÀýÓ¦ÓóÌÐò¡£ÊäÈë±íµ¥ÊÕ¼¯ÓÃÓÚ½«Ò»¸öÀà±ðÌõÄ¿Ìí¼Óµ½Êý¾Ý¿â±í Catalog ÖеÄÊý¾Ý¡£µ±Óû§¿ªÊ¼ÔÚÊäÈë×Ö¶Î Catalog Id ÖÐÊäÈëÊý¾Ýʱ£¬Ò»¸ö XMLHttpRequest HTTP ÇëÇó±»·¢Ë͵½·þÎñÆ÷£¬ÒÔÑéÖ¤Ìí¼ÓµÄ Catalog Id µÄÖµ¡£Èç¹ûÊý¾Ý¿âÖл¹Ã»Óж¨Òå Catalog Id£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is Valid¡±¡£Èç¹ûÊý¾Ý¿âÖÐÒѾ­¶¨ÒåÁËÕâ¸ö Catalog Id£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Í¬Ê±½ûÓà Create Catalog °´Å¥£¬Catalog Id µÄ×Ö¶ÎÖµ±»Ìí¼Óµ½±íµ¥ÖС£

¡¡¡¡xajax PHP ¶ÔÏóÔÚ¿Í»§»úÓ¦ÓóÌÐòÓë·þÎñÆ÷Ö®¼äÆðÖнéµÄ×÷Óá£Ê×ÏÈ£¬½« xajax Àà¿â°üÀ¨½øÀ´£º

require("./xajax/xajax_0.2.4/xajax.inc.php");

¡¡¡¡´´½¨Ò»¸ö xajax ¶ÔÏó£º

$xajax = new xajax();

¡¡¡¡·þÎñÆ÷¶ËµÄ´¦ÀíÓÉ PHP º¯ÊýÀ´Ö´ÐС£´´½¨ PHP º¯Êý validateCatalogId($formValues) ºÍ updateCatalog($formValues)¡£ÕâÁ½¸öº¯Êý¶¼´øÓÐÒ»¸ö $formValues ²ÎÊý£º

function validateCatalogId($formValues){}
function updateCatalog($formValues){}

¡¡¡¡Ê¹Óà registerFunction() ·½·¨½«ÕâЩ PHP º¯Êý×¢²áµ½ xajax ¶ÔÏó¡£xajax ¶ÔÏóΪ¿ÉÄÜ´Ó PHP ½Å±¾»òÊäÈë±íµ¥Ê¼þ´¦Àí³ÌÐòÖе÷ÓÃµÄ PHP º¯Êý´´½¨°ü×°Æ÷º¯Êý¡£

$xajax->registerFunction("validateCatalogId");
$xajax->registerFunction("updateCatalog");

¡¡¡¡Xajax Ϊע²áµÄ PHP º¯ÊýÉú³ÉÒì²½°ü×°Æ÷º¯Êý¡£°ü×°Æ÷º¯ÊýÃû³ÆµÄ¸ñʽΪ xajax_phpfunction¡£ ±äÁ¿ phpfunction ÊÇҪΪ֮¶¨Òå°ü×°Æ÷º¯ÊýµÄÒ»¸ö·þÎñÆ÷¶Ë PHP º¯Êý¡£Xajax ͨ¹ý getFormValues(string formId) ·½·¨ÌṩÒì²½±íµ¥´¦Àí¡£ ͨ¹ýʹÓà getFormValues() ·½·¨£¬¿ÉÒÔ½«±íµ¥×Ö¶ÎÖµÊý×é×÷Ϊ²ÎÊýÌá½»¸øÒ»¸ö xajax Òì²½°ü×°Æ÷º¯Êý¡£ »¹¿ÉÒÔʹÓà getFormValues(string formID ,boolean submitDisabledElements, string prefix]) º¯ÊýÌá½»±íµ¥µÄÒ»²¿·Ö£¬¶ø²»ÊÇÌá½»Õû¸ö±íµ¥¡£prefix ²ÎÊýÖ¸¶¨Ö»ÓÐÒÔ¸Ãǰ׺¿ªÍ·µÄ±íµ¥ÔªËØÓ¦¸Ã±»Ìá½»¡£²¼¶û²ÎÊý submitDisabledElements Ö¸¶¨ÊÇ·ñÌá½»±»½ûÓõÄÔªËØ¡£PHP º¯Êý validateCatalogId ºÍ updateCatalog Ϊ±íµ¥×Ö¶ÎÖµÊý×鶨ÒåÁËÒ»¸ö²ÎÊý¡£ÔÚ·¢³ö XMLHttpRequest ֮ǰ£¬Óà processRequests() º¯ÊýÖ¸¶¨ÓÃÓÚ´¦ÀíÇëÇóµÄ xajax ¶ÔÏó£º

$xajax->processRequests();

¡¡¡¡´ËÍ⻹ÔÚÊäÈë±íµ¥µÄ <head></head> ±ê¼ÇÖÐÖ¸¶¨£¬ÔÚ·þÎñÆ÷·µ»Ø XML ÏìÓ¦Ö®ºó£¬xajax Ó¦¸ÃÉú³ÉÈκÎÐèÒªµÄ JavaScript£º

<?php $xajax->printJavascript("./xajax/xajax_0.2.4");
?>

¡¡¡¡¿Í»§»úÓ¦ÓóÌÐò·¢³öÒ»¸ö XMLHttpRequest¡£ÔÚʾÀýÓ¦ÓóÌÐòÖУ¬XMLHttpRequest ÊÇÓÉÊäÈë×Ö¶Î catalogId µÄ onkeyup ʼþ´¦Àí³ÌÐò·¢³öµÄ£º

<tr><td>Catalog Id:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="catalogId"
¡¡¡¡¡¡¡¡¡¡¡¡name="catalogId"
¡¡¡¡autocomplete="off"
¡¡¡¡¡¡¡¡ onkeyup="xajax_validateCatalogId(xajax.getFormValues
¡¡¡¡¡¡¡¡¡¡ ("validationForm"));"></td>
¡¡¡¡¡¡¡¡ <td><div id="validationMessage"></div></td>
</tr>

¡¡¡¡ÊäÈë×ֶε÷Óðü×°Æ÷º¯Êý xajax_validateCatalogId£¬µ÷ÓÃʱÒÔ±íµ¥×Ö¶ÎÖµÊý×é×÷Ϊ²ÎÊý¡£°ü×°Æ÷º¯Êý½«Ò»¸ö XMLHttpRequest ·¢Ë͵½·þÎñÆ÷¡£xajax ¶ÔÏó½ÓÊÕ XMLHttpRequest£¬²¢µ÷ÓÃÏàÓ¦µÄ PHP º¯Êý validateCatalogId($formValues)¡£

¡¡¡¡´¦ÀíÇëÇó

¡¡¡¡Xajax Ìṩ xajaxResponse À࣬ÓÃÓÚ½«ÏìÓ¦·¢Ëͻؿͻ§»úÓ¦ÓóÌÐò¡£ÔÚ validateCatalogId º¯ÊýÖУ¬´´½¨Ò»¸ö xajaxResponse ¶ÔÏó£º

$objResponse = new xajaxResponse();

¡¡¡¡validateCatalogId º¯ÊýÑéÖ¤Ìí¼Óµ½ÊäÈë±íµ¥ÖÐµÄ Catalog Id Öµ¡£´Ó $formValues Êý×éÖУ¬¼ìË÷ catalogId ×ֶεÄÖµ£º

$catalogId=trim($formValues["catalogId"]);

¡¡¡¡½ÓÏÂÀ´£¬Ê¹Óà PHP PDO À©Õ¹Á¬½Óµ½ DB2 Êý¾Ý¿â£¬²¢ÅÐ¶Ï Catalog ±íÖÐÊÇ·ñΪÊäÈë±íµ¥ÖÐÊäÈëµÄ catalog id Öµ¶¨ÒåÁËÒ»ÐС£

¡¡¡¡¶¨ÒåÓÃÓÚÓû§ÃûºÍÃÜÂëµÄ±äÁ¿£º

$user = "db2";
$password = "db2admin";

¡¡¡¡Ê¹Óà PDO ¹¹Ô캯Êý»ñµÃÓë DB2 Êý¾Ý¿âµÄÒ»¸öÁ¬½Ó£º

$connection = new PDO("odbc:SAMPLE", $user, $password);

¡¡¡¡Èç¹ûÁ¬½Ó³É¹¦£¬PDO ¹¹Ô캯Êý·µ»ØÒ»¸ö DB2 Êý¾Ý¿âÁ¬½Ó×ÊÔ´¡£×¼±¸Ò»¸ö SQL Ô¤ÖÃÓï¾ä£¬¸Ã SQL Óï¾ä´Ó Catalog ±íÖÐÑ¡ÔñÓë±íµ¥ÖÐÊäÈëµÄ catalog id Öµ¶ÔÓ¦µÄÒ»ÐС£Ê¹Óà prepare ( string statement [, array driver_options] ) º¯Êý±àÒëÔ¤ÖÃÓï¾ä£º

$stmt = $connection->prepare("SELECT * from DB2.CATALOG WHERE CATALOGID=?");

¡¡¡¡Ê¹Óà PDO::ATTR_CURSOR ÊôÐÔ½«ÓαêÉèÖÃΪ¿É¹ö¶¯Óα꣺

$stmt ->setAttribute(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL);

¡¡¡¡Ê¹Óà bindParam() ·½·¨°ó¶¨ CatalogId ²ÎÊý£º

$stmt->bindParam(1, $catalogId);

¡¡¡¡Óà execute ( [array input_parameters] ) º¯ÊýÖ´ÐÐÔ¤ÖÃÓï¾äÖÐµÄ SQL ²éѯ£º

$stmt->execute();

¡¡¡¡Ê¹Óà fetch ( [int fetch_style [, int cursor_orientation [, int cursor_offset]]] ) º¯Êý»ñÈ¡½á¹û¼¯ÖеÄÐУº

$row = $stmt->fetch();

¡¡¡¡Èç¹û±»ÇëÇóµÄÐдæÔÚ£¬Ôò fetch() º¯Êý·µ»Ø TRUE£¬Èç¹û±»ÇëÇóµÄÐв»´æÔÚ£¬Ôò·µ»Ø FALSE¡£Èç¹û fetch() ·µ»Ø FALSE£¬Ôò½á¹û¼¯Îª¿Õ£¬±íÃ÷Êý¾Ý¿â±íÖл¹Ã»ÓÐΪ catalog id Öµ¶¨ÒåÒ»¸ö Catalog ±íÐС£Òò´Ë£¬±íµ¥ÖÐÌí¼ÓµÄ Catalog Id ×Ö¶ÎÖµÊÇÓÐЧµÄ¡£½ÓÏÂÀ´£¬Éú³ÉÒ»¸ö·¢Ë͵½¿Í»§»úÓ¦ÓóÌÐòµÄÏìÓ¦¡£Ò»¸öÏìÓ¦°üº¬Ò»¸ö»ò¶à¸öÃüÁîÏûÏ¢¡£±í 1 ÌÖÂÛÁËһЩ³£ÓõÄÃüÁîÏûÏ¢£º

¡¡¡¡±í 1. xajaxResponse ÃüÁîÏûÏ¢

ÃüÁîÏûÏ¢ ÃèÊö
Assign ʹÓ÷½·¨ addAssign(string elementId, string attribute, string data) ÉèÖÃÊäÈëÒ³ÃæÖÐÒ»¸öÔªËØµÄÖ¸¶¨ÊôÐÔ
Append ʹÓ÷½·¨ addAppend(string elementId, string attribute, string data) ½«Êý¾Ý¸½¼Óµ½ÊäÈëÒ³ÃæÖÐÒ»¸öÔªËØµÄÖ¸¶¨ÊôÐÔ
Prepend ʹÓ÷½·¨ addPrepend(string elementId, string attribute, string data) ½«Êý¾ÝÉèÖÃΪÊäÈëÒ³ÃæÖÐÒ»¸öÔªËØµÄÖ¸¶¨ÊôÐÔµÄÔ¤¶¨Öµ
Replace ʹÓ÷½·¨ addReplace(string elementId, string attribute, string replace, string data) Ìæ»»ÊäÈëÒ³ÃæÖÐÒ»¸öÔªËØµÄÖ¸¶¨ÊôÐÔÖеÄÊý¾Ý 
Script ʹÓ÷½·¨ addScript(string javascript) ÔËÐÐÖ¸¶¨µÄ JavaScript ´úÂë
Alert ʹÓ÷½·¨ addAlert(string message) ÏÔʾ°üº¬Ö¸¶¨ÏûÏ¢µÄ¾¯¸æ¶Ô»°¿ò


¡¡¡¡Èç¹û fetch() ·½·¨·µ»Ø FALSE£¬Ôò validationMessage div ÖÐÏÔʾÏûÏ¢£º"Catalog Id is Valid"¡£addAssign ·½·¨ÉèÖà validationMessage div µÄ innerHTML¡£

$objResponse->addAssign("validationMessage","innerHTML","Catalog Id is Valid");

¡¡¡¡Èç¹û fetch() º¯Êý·µ»Ø TRUE£¬Ôò Catalog ±íÖÐÒѾ­¶¨ÒåÁËÕâ¸ö catalog id Öµ¡£ Òò´Ë£¬ÊäÈë±íµ¥ÖÐÌí¼ÓµÄ Catalog Id ÖµÊÇÎÞЧµÄ¡£Èç¹û fetch() ·½·¨·µ»ØÒ»ÐУ¬Ôò½« validationMessage div µÄ innerHTML ÉèÖÃΪ ¡°Catalog Id is not Valid¡±£º

$objResponse->addAssign("validationMessage","innerHTML","Catalog Id is not Valid");

¡¡¡¡½ÓÏÂÀ´£¬´Ó½á¹û¼¯ÐÐÖÐȡֵ£¬ÉèÖÃÊäÈë±íµ¥×Ö¶ÎÖеÄÖµ¡£fetch() º¯Êý½«½á¹û¼¯Ö¸ÕëÖ¸ÏòÏÂÒ»ÐС£

¡¡¡¡Óà $row[mixed column] º¯Êý´Ó½á¹û¼¯ÐÐÖлñÈ¡×Ö¶ÎÖµ¡£column ²ÎÊý¿ÉÒÔÖ¸¶¨ÎªÁÐË÷Òý£¨´Ó 0 ¿ªÊ¼¼ÆÊý£©»òÁÐÃû¡£ÀýÈ磬journal ÁÐÖµ¿ÉÒÔÓÃÒÔÏÂÇåµ¥ÖÐµÄ PHP ´úÂë»ñµÃ£º

$journal=$row["JOURNAL"];

¡¡¡¡Óà addAssign ·½·¨ÉèÖÃÊäÈë±íµ¥×Ö¶ÎÔªËØµÄ value ÊôÐÔ¡£ÀýÈ磬ÏñÏÂÃæÕâÑùÉèÖà journal ÔªËØµÄ value ÊôÐÔ£º

$objResponse->addAssign("journal","value",$journal);

¡¡¡¡´ËÍ⣬½ûÓà submit °´Å¥£º

$objResponse->addAssign("submitForm","disabled",true);

¡¡¡¡´Ó validateCatalogId º¯ÊýÒÔ XML ×Ö·û´®µÄÐÎʽ·µ»Ø $objResponse ¶ÔÏó£º

return $objResponse->getXML();

¡¡¡¡XML ÏìÓ¦±»·¢ËÍÖÁ xajax ´¦Àí³ÌÐò£¬ºóÕß½« XML ÏìÓ¦·¢ËÍÖÁ xajax µÄ JavaScript ÏûÏ¢±Ã¡£ÏûÏ¢±Ã½âÎö XML Ö¸Á²¢ÉèÖÃÊäÈëÒ³ÃæÖеÄÔªËØ¡£Òò´Ë£¬ÔÚ $xmlResponse ¶ÔÏóÖÐÓà addAssign ·½·¨Ö¸¶¨µÄÊý¾Ý±»ÉèÖõ½ÊäÈë±íµ¥ÖС£

¡¡¡¡updateCatalog($formValues) º¯ÊýÓÃÓÚ¸ù¾ÝÊäÈë±íµ¥¸üÐÂÊý¾Ý¿â±í Catalog¡£Èç¹û Catalog Id ×Ö¶ÎÖµÓÐЧ£¬ÔòΪ ±íµ¥µÄÆäËû×Ö¶ÎÌí¼ÓÖµ£¬ÒÔ´´½¨Ò»¸öеÄÀà±ðÌõÄ¿¡£µ¥»÷ Create Catalog °´Å¥Ìá½»±íµ¥¡£onsubmit ʼþ´¦Àí³ÌÐòµ÷Óðü×°Æ÷º¯Êý xajax_updateCatalog£¬ºóÕß·¢ËÍÒ»¸ö XMLHttpRequest µ½·þÎñÆ÷£º

onsubmit="xajax_updateCatalog(xajax.getFormValues("validationForm"));"

¡¡¡¡xajax ¶ÔÏó½ÓÊÕ XMLHttpRequest£¬²¢µ÷ÓÃÏàÓ¦µÄ PHP º¯Êý updateCatalog($formValues)¡£ÔÚ updateCatalog º¯ÊýÖУ¬»ñÈ¡±íµ¥×Ö¶ÎÖµ£¬²¢´´½¨Ò»Ìõ SQL Óï¾ä£¬ÒԱ㽫һÐÐÌí¼Óµ½Êý¾Ý¿â±í Catalog ÖС£»ñµÃÓëÊý¾Ý¿âµÄÁ¬½Ó£¬²¢ÔËÐÐ SQL Óï¾ä¡£Çåµ¥ 2 ÖÐÁгöÁË input.php ½Å±¾£º

¡¡¡¡Çåµ¥ 2. input.php

<?php require("./xajax/xajax_0.2.4/xajax.inc.php");
$xajax = new xajax();
$xajax->cleanBufferOn();¡¡
$xajax->registerFunction("validateCatalogId");
$xajax->registerFunction("updateCatalog");
function validateCatalogId($formValues){
$objResponse = new xajaxResponse();
$catalogId=trim($formValues["catalogId"]);
$user = "db2";
$password = "db2admin";
$connection = new PDO("odbc:SAMPLE", $user, $password);
$stmt = $connection->prepare("SELECT * from DB2.CATALOG WHERE CATALOGID=?");
$stmt ->setAttribute(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL);
$stmt->bindParam(1, $catalogId);
$stmt->execute();
$row = $stmt->fetch();
if(!$row){
$objResponse->addAssign("validationMessage","innerHTML","Catalog Id is Valid");
$objResponse->addAssign("submitForm","disabled",false);
$objResponse->addAssign("journal","value","");
$objResponse->addAssign("section","value","");
$objResponse->addAssign("edition","value","");
$objResponse->addAssign("title","value","");
$objResponse->addAssign("author","value","");
}
if($row){
$objResponse->addAssign("validationMessage","innerHTML",
"Catalog Id is not Valid");
$catalogId=$row["CATALOGID"];
$journal=$row["JOURNAL"];
$section=$row["SECTION"];
$edition=$row["EDITION"];
$title=$row["TITLE"];
$author=$row["AUTHOR"];
$objResponse->addAssign("journal","value",$journal);
$objResponse->addAssign("section","value",$section);
$objResponse->addAssign("edition","value",$edition);
$objResponse->addAssign("title","value",$title);
$objResponse->addAssign("author","value",$author);
$objResponse->addAssign("submitForm","disabled",true);
}
return $objResponse->getXML();
}
function updateCatalog($formValues){
$catalogId=trim($formValues["catalogId"]);
$journal=trim($formValues["journal"]);
$section=trim($formValues["section"]);
$edition=trim($formValues["edition"]);
$title=trim($formValues["title"]);
$author=trim($formValues["author"]);
$user = "db2";
$password = "db2admin";
$connection = new PDO("odbc:SAMPLE", $user, $password);
$sql = "INSERT INTO DB2.Catalog¡¡
VALUES("".$catalogId."","".$journal."","".$section."","".$edition."","".
$title."","".$author."")";
$r=$connection->exec($sql);
$connection->commit();
echo "Added $r rows.n";
}
$xajax->processRequests();
?>
<head>
<?php $xajax->printJavascript("./xajax/xajax_0.2.4");
?>
</head>
<body>
<h1>Form to Create a Catalog Entry</h1>
<form id="validationForm"¡¡name="validationForm" onsubmit=
"xajax_updateCatalog(xajax.getFormValues("validationForm"));">
<table>
<tr><td>Catalog Id:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="catalogId"
¡¡¡¡¡¡¡¡¡¡¡¡name="catalogId"
¡¡ autocomplete="off"
¡¡¡¡ onkeyup="xajax_validateCatalogId(xajax.getFormValues("validationForm"));"></td>
¡¡¡¡¡¡¡¡<td><div id="validationMessage"></div></td>
</tr>
<tr><td>Journal:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="journal"
¡¡¡¡¡¡¡¡¡¡¡¡name="journal"></td>
</tr>
<tr><td>Section:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="section"
¡¡¡¡¡¡¡¡¡¡¡¡name="section"></td>
</tr>
<tr><td>Edition:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="edition"
¡¡¡¡¡¡¡¡¡¡¡¡name="edition"></td>
</tr>
<tr><td>Title:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="title"
¡¡¡¡¡¡¡¡¡¡¡¡name="title"></td>
</tr>
<tr><td>Author:</td><td><input¡¡¡¡type="text"
¡¡¡¡¡¡¡¡¡¡¡¡size="20"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="author"
¡¡¡¡¡¡¡¡¡¡¡¡name="author"></td>
</tr>
<tr><td><input¡¡¡¡type="submit"
¡¡¡¡¡¡¡¡¡¡¡¡value="Create Catalog"¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡id="submitForm"
¡¡¡¡¡¡¡¡¡¡¡¡name="submitForm"></td>
</tr>
</table>
</form>
</body>
</html>

¡¡¡¡½ÓÏÂÀ´£¬ÔÚ Apache Web ·þÎñÆ÷ÖÐÔËÐÐ input.php ½Å±¾¡£½« input.php ¸´ÖƵ½ C:Apache2Apache2htdocs Ŀ¼ÖС£Ê¹Óà URL http://localhost/input.php ÔËÐиà PHP ½Å±¾¡£Õâʱ½«ÏÔʾÊäÈë±íµ¥£¬Èçͼ 1 Ëùʾ
ͼ 1. ÊäÈë±íµ¥

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡¿ªÊ¼Îª Catalog Id ×Ö¶ÎÌí¼ÓÒ»¸öÖµ¡£ÕâʱÏÔʾһÌõÏûÏ¢£¬ÑéÖ¤ Catalog Id ×Ö¶ÎÖµÊÇ·ñÓÐЧ£¬Èçͼ 2 Ëùʾ£º

¡¡¡¡Í¼ 2. ÑéÖ¤ÊäÈë×Ö¶Î

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡Ò»¸ö XMLHttpRequest HTTP ÇëÇó±»·¢Ë͵½·þÎñÆ÷£¬ÆäÖаüÀ¨¶ÔÊäÈë×ֶεÄËùÓÐÐ޸ġ£

¡¡¡¡Í¼ 3. Ìí¼ÓÓÐЧµÄÊäÈë×Ö¶ÎÖµ

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡Èç¹ûÊäÈëµÄÖµÔÚ Catalog ÖÐÒѾ­±»¶¨Ò壬ÔòÏÔʾһÌõÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Èçͼ 4 Ëùʾ¡£ÀýÈ磬Ìí¼Ó ¡°catalog1¡± µ½ Catalog Id ×ֶΡ£ÓÉÓÚ ¡°catalog1¡± ÒѾ­±»¶¨Ò壬Òò´ËÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±¡£

¡¡¡¡Í¼ 4. Ìí¼ÓÎÞЧµÄÊäÈë×Ö¶ÎÖµ

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡Ö¸¶¨Ò»¸öÓÐЧµÄ Catalog ID£¬²¢Îª±íµ¥µÄÆäËû×Ö¶ÎÌí¼ÓÖµÖ®ºó£¬¾Í¿ÉÒÔ´´½¨Ò»¸öеÄÀà±ðÌõÄ¿¡£µ¥»÷ Create Catalog °´Å¥´´½¨Ò»¸öÀà±ðÌõÄ¿£¬Èçͼ 5 Ëùʾ£º

¡¡¡¡Í¼ 5. ´´½¨Àà±ðÌõÄ¿

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡Èç¹ûÊäÈëµÄ Catalog Id ×Ö¶ÎÖµÖ®Ç°Ôø±»ÓÃÓÚ´´½¨Àà±ðÌõÄ¿£¬ÀýÈçÕâ¸öÀý×ÓÖÐµÄ ¡°catalog3¡±£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Èçͼ 6 Ëùʾ£º

¡¡¡¡Í¼ 6. Ìí¼ÓÒѾ­ÓÃÓÚ´´½¨Àà±ðÌõÄ¿µÄÒ»¸ö CatalogId

ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax

¡¡¡¡½áÊøÓï

¡¡¡¡±¾ÎÄÑÝʾÁËÈçºÎ½« Ajax ÌṩµÄÒì²½¿Í»§»ú-·þÎñÆ÷ XMLHttpRequest ÇëÇóÓë PHP ½Å±¾Ïà½áºÏ£¬´Ó¶ø¿ª·¢¶¯Ì¬ Web Ó¦ÓóÌÐò¡£Ê¹ÓÃÕâЩʾÀý¿ª·¢Äú×Ô¼ºµÄ·ÃÎÊ DB2 Êý¾ÝµÄ¶¯Ì¬ Web Ó¦ÓóÌÐò

±¾ÎÄ×÷Õß:δ֪
Ô´´úÂëÍø¹©¸å.
ÍøÓÑÆÀÂÛ (0)
»áÔ±ÖÐÐÄ
ÍøÂç±à³Ì
±¾Õ¾ÍƼö
ÍøÂç±à³ÌÖ®¾«»ª