ÍøÂçѧԺ w3popÉçÇø ÍøÂç×ÊÔ´ ITÐÂÎÅ

w3pop.com :: ÍøÂçѧԺ :: PHP :: PHP PDO ѧϰ±Ê¼Ç

»áÔ±µÇ½

ÕʺÅ

ÃÜÂë

»Ø´ð

¼ÇסÃÜÂë

Íü¼ÇÃÜÂë? ×¢²á

PHP
PHP Libxml
PHP Math
PHP Misc
PHP MySQL
PHP SimpleXML
PHP String
PHP XML
PHP Zip
PHP Mail
ÓÃPHP5µÄDirector..
PHP ×èÖ¹SQL×¢ÈëÊ..
PHP5ÃæÏò¶ÔÏó - »..
PHP5ÃæÏò¶ÔÏó - »..
PHP5ÃæÏò¶ÔÏó - »..
PHP5ÃæÏò¶ÔÏó - »..
PHP5ÃæÏò¶ÔÏó - »..
php5ÃæÏò¶ÔÏó - »..
php5ÃæÏò¶ÔÏó - »..
ÓÃPHP¿ØÖÆÓû§µÄä..
PHP PDO ѧϰ±Ê¼Ç

PHP PDO ѧϰ±Ê¼Ç


×÷Õß:w3pop.com ·­Òë/ÕûÀí:w3pop.com ·¢²¼:2007-07-12 ä¯ÀÀ:4979 :: ::

¡öPDOΪºÎÎ

POD£¨PHP Data Object£©À©Õ¹ÔÚPHP5ÖмÓÈ룬PHP6Öн«Ä¬ÈÏʶÓÃPDOÁ¬½ÓÊý¾Ý¿â£¬ËùÓзÇPDOÀ©Õ¹½«»áÔÚPHP6±»´ÓÀ©Õ¹ÖÐÒÆ³ý¡£¸ÃÀ©Õ¹ÌṩPHPÄÚÖÃÀà PDOÀ´¶ÔÊý¾Ý¿â½øÐзÃÎÊ£¬²»Í¬Êý¾Ý¿âʹÓÃÏàͬµÄ·½·¨Ãû£¬½â¾öÊý¾Ý¿âÁ¬½Ó²»Í³Ò»µÄÎÊÌâ¡£
ÎÒÊÇÅäÖÃÔÚwindowsÏÂ×ö¿ª·¢Óõġ£

¡öPDOµÄÄ¿±ê

  • ÌṩһÖÖÇáÐÍ¡¢ÇåÎú¡¢·½±ãµÄ API
  • ͳһ¸÷ÖÖ²»Í¬ RDBMS ¿âµÄ¹²ÓÐÌØÐÔ£¬µ«²»Åųý¸ü¸ß¼¶µÄÌØÐÔ¡£
  • ͨ¹ý PHP ½Å±¾Ìṩ¿ÉÑ¡µÄ½Ï´ó³Ì¶ÈµÄ³éÏó/¼æÈÝÐÔ¡£
  • ¡öPDOµÄÌØµã£º

  • ÐÔÄÜ¡£PDO ´ÓÒ»¿ªÊ¼¾ÍÎüÈ¡ÁËÏÖÓÐÊý¾Ý¿âÀ©Õ¹³É¹¦ºÍʧ°ÜµÄ¾­Ñé½Ìѵ¡£ÒòΪ PDO µÄ´úÂëÊÇȫеģ¬ËùÒÔÎÒÃÇÓлú»áÖØÐ¿ªÊ¼Éè¼ÆÐÔÄÜ£¬ÒÔÀûÓà PHP 5 µÄ×îÐÂÌØÐÔ¡£
  • ÄÜÁ¦¡£PDO Ö¼ÔÚ½«³£¼ûµÄÊý¾Ý¿â¹¦ÄÜ×÷Ϊ»ù´¡Ìṩ£¬Í¬Ê±Ìṩ¶ÔÓÚ RDBMS ¶ÀÌØ¹¦Äܵķ½±ã·ÃÎÊ¡£
  • ¼òµ¥¡£PDO Ö¼ÔÚʹÄúÄܹ»ÇáËÉʹÓÃÊý¾Ý¿â¡£API ²»»áÇ¿ÐнéÈëÄúµÄ´úÂ룬ͬʱ»áÇå³þµØ±íÃ÷ÿ¸öº¯Êýµ÷ÓõĹý³Ì¡£
  • ÔËÐÐʱ¿ÉÀ©Õ¹¡£PDO À©Õ¹ÊÇÄ£¿é»¯µÄ£¬Ê¹ÄúÄܹ»ÔÚÔËÐÐʱΪÄúµÄÊý¾Ý¿âºó¶Ë¼ÓÔØÇý¶¯³ÌÐò£¬¶ø²»±ØÖØÐ±àÒë»òÖØÐ°²×°Õû¸ö PHP ³ÌÐò¡£ÀýÈ磬PDO_OCI À©Õ¹»áÌæ´ú PDO À©Õ¹ÊµÏÖ Oracle Êý¾Ý¿â API¡£»¹ÓÐһЩÓÃÓÚ MySQL¡¢PostgreSQL¡¢ODBC ºÍ Firebird µÄÇý¶¯³ÌÐò£¬¸ü¶àµÄÇý¶¯³ÌÐòÉÐÔÚ¿ª·¢¡£

    ¡ö°²×°PDO

    ÎÒÕâÀïÊÇWINDOWSÏ¿ª·¢ÓõÄPDOÀ©Õ¹£¬ÒªÊÇÄãÒªÔÚLinuxϰ²×°ÅäÖã¬Çëµ½±ðµÄµØ·½Ñ°ÕÒ¡£
    °æ±¾ÒªÇó£º
    php5.1ÒÔ¼°ÒÔºó°æ±¾µÄ³ÌÐò°üÀïÒѾ­´øÁË£»
    php5.0.xÔòÒªµ½pecl.php.netÏÂÔØ£¬·Åµ½ÄãµÄÀ©Õ¹¿â£¬¾ÍÊÇPHPËùÔÚµÄÎļþ¼ÐµÄextÎļþ¼ÐÏ£»
    ÊÖ²áÉÏ˵5.0֮ǰµÄ°æ±¾²»ÄÜÔËÐÐPDOÀ©Õ¹¡£
     
    ÅäÖãº
    ÐÞ¸ÄÄãµÄphp.iniÅäÖÃÎļþ,ʹËüÖ§³Öpdo.£¨php.iniÕâ¸ö¶«Î÷ûÓÐŪ¶®µÄ»°£¬ÏÈŪÇå³þ£¬ÒªÐ޸ĵ÷ÓÃÄãµÄphpinfo()º¯ÊýËùÏÔʾµÄÄǸöphp.ini£©
    °Ñ
    extension=php_pdo.dllÇ°ÃæµÄ·ÖºÅÈ¥µô£¬·ÖºÁÊÇphpÅäÖÃÎļþ×¢ÊÍ·ûºÅ,Õâ¸öÀ©Õ¹ÊDZØÐëµÄ¡£
    ÍùÏ»¹ÓÐ
    ;extension=php_pdo.dll
    ;extension=php_pdo_firebird.dll
    ;extension=php_pdo_informix.dll
    ;extension=php_pdo_mssql.dll
    ;extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_oci8.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    ;extension=php_pdo_sqlite.dll
    ¸÷¸÷À©Õ¹Ëù¶ÔÓ¦µÄÊý¾Ý¿âÊÇ£º
    Driver name Supported databases
    PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
    PDO_FIREBIRD Firebird/Interbase 6
    PDO_INFORMIX IBM Informix Dynamic Server
    PDO_MYSQL MySQL 3.x/4.x
    PDO_OCI Oracle Call Interface
    PDO_ODBC ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
    PDO_PGSQL PostgreSQL
    PDO_SQLITE SQLite 3 and SQLite 2
    ÄãҪʹÓÃÄÄÖÖÊý¾Ý¿â£¬Ö»Òª°ÑÏàÓ¦µÄÀ©Õ¹Ç°µÄ×¢ÊÍ·ûºÅ";"È¥µô¾Í¿ÉÒÔÁË¡£

    ¡öʹÓÃPDO

    ÎÒÕâÀï¼ÙÉèÄãÒѾ­×°ºÃmysqlÁË£¬ÒªÊÇûװµÄ»°£¬Âé·³ÏÈÏë°ì·¨×°ÉÏ£¬ÎÒµÄÊÇmysql5.0.22,ºÚҹ·ÈËÓõÄÊÇMySQL 4.0.26Ò²¿ÉÒÔÓá£
    ¡ïÊý¾Ý¿âµÄÁ¬½Ó£º
    ÎÒÃÇͨ¹ýÏÂÃæµÄÀý×ÓÀ´·ÖÎöPDOÁ¬½ÓÊý¾Ý¿â£¬

    <?php
    $dbms='mysql';     //Êý¾Ý¿âÀàÐÍ Oracle ÓÃODI,¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ£¬Ê¹Óò»Í¬µÄÊý¾Ý¿â£¬Ö»Òª¸ÄÕâ¸ö£¬²»ÓüÇסÄÇô¶àµÄº¯ÊýÁË
    $host='localhost'; //Êý¾Ý¿âÖ÷»úÃû
    $dbName='test';    //ʹÓõÄÊý¾Ý¿â
    $user='root';      //Êý¾Ý¿âÁ¬½ÓÓû§Ãû
    $pass='';          //¶ÔÓ¦µÄÃÜÂë
    $dsn="$dbms:host=$host;dbname=$dbName";
    //

    try {
    $dbh = new PDO($dsn, $user, $pass); //³õʼ»¯Ò»¸öPDO¶ÔÏ󣬾ÍÊÇ´´½¨ÁËÊý¾Ý¿âÁ¬½Ó¶ÔÏó$dbh
    echo "Á¬½Ó³É¹¦<br/>";
    /*Ä㻹¿ÉÒÔ½øÐÐÒ»´ÎËÑË÷²Ù×÷
        foreach ($dbh->query('SELECT * from FOO') as $row) {
    print_r($row); //Äã¿ÉÒÔÓà echo($GLOBAL); À´¿´µ½ÕâЩֵ
    }
    */
    $dbh = null;
    } catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
    }
    //ĬÈÏÕâ¸ö²»Êdz¤Á¬½Ó£¬Èç¹ûÐèÒªÊý¾Ý¿â³¤Á¬½Ó£¬ÐèÒª×îºó¼ÓÒ»¸ö²ÎÊý£ºarray(PDO::ATTR_PERSISTENT => true) ±ä³ÉÕâÑù£º
    $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

    ?>

    ¡ïÊý¾Ý¿â²éѯ£º
    ÉÏÃæÎÒÃÇÒѾ­½øÐÐÁËÒ»´Î²éѯ£¬ÎÒÃÇ»¹¿ÉÒÔʹÓÃÈçϵIJéѯ£º
    <?php
    $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); //ÉèÖÃÊôÐÔ
    $rs = $db->query("SELECT * FROM foo");
    $rs->setFetchMode(PDO::FETCH_ASSOC);
    $result_arr = $rs->fetchAll();
    print_r($result_arr);
    ?>

    ÒÔÉÏÒòΪÓõ½setAttribute()·½·¨£¬·ÅÉÏÄÇÁ½¸ö²ÎÊý£¬°Ñ×Ö¶ÎÃûÇ¿ÖÆ×ª»»³É´óд¡£ÏÂÃæÁгö¶àÓÐPDO::setAttribute()µÄ²ÎÊý£º

    • PDO::ATTR_CASE: Ç¿ÖÆÁÐÃû±ä³ÉÒ»ÖÖ¸ñʽ£¬ÏêϸÈçÏÂ(µÚ¶þ¸ö²ÎÊý)£º
      • PDO::CASE_LOWER: Ç¿ÖÆÁÐÃûÊÇСд.
      • PDO::CASE_NATURAL: ÁÐÃû°´ÕÕԭʼµÄ·½Ê½
      • PDO::CASE_UPPER: Ç¿ÖÆÁÐÃûΪ´óд.
    • PDO::ATTR_ERRMODE: ´íÎóÌáʾ.
      • PDO::ERRMODE_SILENT: ²»ÏÔʾ´íÎóÐÅÏ¢£¬Ö»ÏÔʾ´íÎóÂë.
      • PDO::ERRMODE_WARNING: ÏÔʾ¾¯¸æ´íÎó.
      • PDO::ERRMODE_EXCEPTION: Å׳öÒì³£.
    • PDO::ATTR_ORACLE_NULLS (²»½ö½öÊÇORACLEÓÐЧ£¬±ðµÄÊý¾Ý¿âÒ²ÓÐЧ): £©Ö¸¶¨Êý¾Ý¿â·µ»ØµÄNULLÖµÔÚphpÖжÔÓ¦µÄÊýÖµ¡£
      • PDO::NULL_NATURAL: ²»±ä.
      • PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.
      • PDO::NULL_TO_STRING: NULL is converted to an empty string.
    • PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.
    • PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requires array(string classname, array(mixed constructor_args)).
    • PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.
    • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

    Àý×ÓÖеÄ$rs->setFetchMode(PDO::FETCH_ASSOC);ÊÇPDOStatement::setFetchMode()£¬¶Ô·µ»ØÀàÐ͵ÄÉùÃ÷¡£
    ÓÐÈçÏ£º
    PDO::FETCH_ASSOC
    -- ¹ØÁªÊý×éÐÎʽ
    PDO::FETCH_NUM   -- Êý×ÖË÷ÒýÊý×éÐÎʽ
    PDO::FETCH_BOTH  -- Á½ÕßÊý×éÐÎʽ¶¼ÓУ¬ÕâÊÇȱʡµÄ
    PDO::FETCH_OBJ   -- °´ÕÕ¶ÔÏóµÄÐÎʽ£¬ÀàËÆÓÚÒÔǰµÄ mysql_fetch_object()

    ¸ü¶à·µ»ØÀàÐÍÉùÃ÷(PDOStatement::·½·¨Ãû)¿´Êֲᡣ

    ¡ï²åÈ룬¸üУ¬É¾³ýÊý¾Ý£¬

    $db->exec("DELETE FROM `xxxx_menu` where mid=43");

  • ¼òµ¥µÄ×ܽáÒ»ÏÂÉÏÃæµÄ²Ù×÷:
    ²éѯ²Ù×÷Ö÷ÒªÊÇPDO::query()¡¢PDO::exec()¡¢PDO::prepare()¡£
    PDO::query()Ö÷ÒªÊÇÓÃÓÚÓмǼ½á¹û·µ»ØµÄ²Ù×÷£¬ÌرðÊÇSELECT²Ù×÷£¬
    PDO::exec()Ö÷ÒªÊÇÕë¶ÔûÓнá¹û¼¯ºÏ·µ»ØµÄ²Ù×÷£¬±ÈÈçINSERT¡¢UPDATE¡¢DELETEµÈ²Ù×÷£¬Ëü·µ»ØµÄ½á¹ûÊǵ±Ç°²Ù×÷Ó°ÏìµÄÁÐÊý¡£
    PDO::prepare()Ö÷ÒªÊÇÔ¤´¦Àí²Ù×÷£¬ÐèҪͨ¹ý$rs->execute()À´Ö´ÐÐÔ¤´¦ÀíÀïÃæµÄSQLÓï¾ä£¬Õâ¸ö·½·¨¿ÉÒ԰󶨲ÎÊý£¬¹¦ÄܱȽÏÇ¿´ó£¬²»ÊDZ¾ÎÄÄܹ»¼òµ¥ËµÃ÷°×µÄ£¬´ó¼Ò¿ÉÒԲο¼ÊÖ²áºÍÆäËûÎĵµ¡£
    »ñÈ¡½á¹û¼¯²Ù×÷Ö÷ÒªÊÇ£ºPDOStatement::fetchColumn()¡¢PDOStatement::fetch()¡¢PDOStatement::fetchALL()¡£
    PDOStatement::fetchColumn() ÊÇ»ñÈ¡½á¹ûÖ¸¶¨µÚÒ»Ìõ¼Ç¼µÄij¸ö×ֶΣ¬È±Ê¡ÊǵÚÒ»¸ö×ֶΡ£
    PDOStatement::fetch() ÊÇÓÃÀ´»ñȡһÌõ¼Ç¼£¬
    PDOStatement::fetchAll()ÊÇ»ñÈ¡ËùÓмǼ¼¯µ½Ò»¸öÖУ¬»ñÈ¡½á¹û¿ÉÒÔͨ¹ýPDOStatement::setFetchModeÀ´ÉèÖÃÐèÒª½á¹û¼¯ºÏµÄÀàÐÍ¡£

    ÁíÍâÓÐÁ½¸öÖܱߵIJÙ×÷£¬Ò»¸öÊÇPDO::lastInsertId()ºÍPDOStatement::rowCount()¡£PDO::lastInsertId()ÊÇ·µ»ØÉϴβåÈë²Ù×÷£¬Ö÷¼üÁÐÀàÐÍÊÇ×ÔÔöµÄ×îºóµÄ×ÔÔöID¡£
    PDOStatement::rowCount()Ö÷ÒªÊÇÓÃÓÚPDO::query()ºÍPDO::prepare()½øÐÐDELETE¡¢INSERT¡¢UPDATE²Ù×÷Ó°ÏìµÄ½á¹û¼¯£¬¶ÔPDO::exec()·½·¨ºÍSELECT²Ù×÷ÎÞЧ¡£



    ¡ïÊÂÎñºÍ×Ô¶¯Ìá½»

    ÖÁ´Ë£¬ÄúÒѾ­Í¨¹ý PDO Á¬½Óµ½ÁË mysql£¬ÔÚ·¢³ö²éѯ֮ǰ£¬ÄúÓ¦¸ÃÀí½â PDO ÊÇÈçºÎ¹ÜÀíÊÂÎñµÄ¡£Èç¹û֮ǰûÓнӴ¥¹ýÊÂÎñ£¬ÄÇôÊ×ÏÈÒªÖªµÀÊÂÎñµÄ 4 ¸öÌØÕ÷£ºÔ­×ÓÐÔ£¨Atomicity£©¡¢Ò»ÖÂÐÔ£¨Consistency£©¡¢¶ÀÁ¢ÐÔ£¨Isolation£©ºÍ³Ö¾ÃÐÔ£¨Durability£©£¬¼´ ACID¡£ÓÃÍâÐÐÈ˵Ļ°Ëµ£¬¶ÔÓÚÔÚÒ»¸öÊÂÎñÖÐÖ´ÐеÄÈκι¤×÷£¬¼´Ê¹ËüÊÇ·Ö½×¶ÎÖ´Ðеģ¬Ò²Ò»¶¨¿ÉÒÔ±£Ö¤¸Ã¹¤×÷»á°²È«µØÓ¦ÓÃÓÚÊý¾Ý¿â£¬²¢ÇÒÔÚ¹¤×÷±»Ìύʱ£¬²» »áÊܵ½À´×ÔÆäËûÁ¬½ÓµÄÓ°Ïì¡£ÊÂÎñÐÔ¹¤×÷¿ÉÒÔ¸ù¾ÝÇëÇó×Ô¶¯³·Ïú£¨¼ÙÉèÄú»¹Ã»ÓÐÌá½»Ëü£©£¬ÕâʹµÃ½Å±¾ÖеĴíÎó´¦Àí±äµÃ¸ü¼ÓÈÝÒס£
    ÊÂÎñͨ³£ÊÇͨ¹ý°ÑÒ»Åú¸ü¸Ä»ýÐîÆðÀ´¡¢Ê¹Ö®Í¬Ê±ÉúЧ¶øÊµÏֵġ£ÕâÑù×öµÄºÃ´¦ÊÇ¿ÉÒÔ´ó´óÌá¸ßÕâЩ¸üеÄЧÂÊ¡£»»¾ä»°Ëµ£¬ÊÂÎñ¿ÉÒÔʹ½Å±¾¸ü¿ì£¬¶øÇÒ¿ÉÄܸü½¡×³£¨²»¹ýÐèÒªÕýÈ·µØÊ¹ÓÃÊÂÎñ²ÅÄÜ»ñµÃÕâÑùµÄºÃ´¦£©¡£
    ²»ÐÒµÄÊÇ£¬²¢²»ÊÇÿÖÖÊý¾Ý¿â¶¼Ö§³ÖÊÂÎñ(Mysql5Ö§³ÖÊÂÎñ£¬mysql4ÎÒ²»ÖªµÀ)£¬ËùÒÔµ±µÚÒ»´Î´ò¿ªÁ¬½Óʱ£¬PDO ÐèÒªÔÚËùνµÄ“×Ô¶¯Ìá½»£¨auto-commit£©”ģʽÏÂÔËÐС£×Ô¶¯ÌύģʽÒâζ×Å£¬Èç¹ûÊý¾Ý¿âÖ§³ÖÊÂÎñ£¬ÄÇôÄúËùÔËÐеÄÿһ¸ö²éѯ¶¼ÓÐËü×Ô¼ºµÄÒþʽÊ Îñ£¬Èç¹ûÊý¾Ý¿â²»Ö§³ÖÊÂÎñ£¬Ã¿¸ö²éѯ¾ÍûÓÐÕâÑùµÄÊÂÎñ¡£Èç¹ûÄúÐèÒªÒ»¸öÊÂÎñ£¬ÄÇô±ØÐëʹÓà PDO::beginTransaction() ·½·¨À´Æô¶¯Ò»¸öÊÂÎñ¡£Èç¹ûµ×²ãÇý¶¯³ÌÐò²»Ö§³ÖÊÂÎñ£¬ÄÇô½«»áÅ׳öÒ»¸ö PDOException£¨ÎÞÂÛ´íÎó´¦ÀíÉèÖÃÊÇÔõÑùµÄ£ºÕâ×ÜÊÇÒ»¸öÑÏÖØ´íÎó״̬£©¡£ÔÚÒ»¸öÊÂÎñÖУ¬¿ÉÒÔʹÓà PDO::commit() »ò PDO::rollBack() À´½áÊø¸ÃÊÂÎñ£¬ÕâÈ¡¾öÓÚÊÂÎñÖÐÔËÐеĴúÂëÊÇ·ñ³É¹¦¡£
    µ±½Å±¾½áÊøÊ±£¬»òÕßµ±Ò»¸öÁ¬½Ó¼´½«±»¹Ø±Õʱ£¬Èç¹ûÓÐÒ»¸öδÍê³ÉµÄÊÂÎñ£¬ÄÇô PDO ½«×Ô¶¯»Ø¹ö¸ÃÊÂÎñ¡£ÕâÊÇÒ»ÖÖ°²È«´ëÊ©£¬ÓÐÖúÓÚ±ÜÃâÔڽű¾·ÇÕý³£½áÊøÊ±³öÏÖ²»Ò»ÖµÄÇé¿ö —— Èç¹ûûÓÐÏÔʽµØÌá½»ÊÂÎñ£¬ÄÇô¼ÙÉèÓÐij¸öµØ·½»á³öÏÖ²»Ò»Ö£¬ËùÒÔÒªÖ´Ðлعö£¬ÒÔ±£Ö¤Êý¾ÝµÄ°²È«ÐÔ¡£

    //Àý×ÓÀ´×Ôhttp://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505furlong/index.html
    try {
    $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
    array(PDO_ATTR_PERSISTENT => true));
    echo "Connected\n";
    $dbh->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
    $dbh->beginTransaction();
    $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
    $dbh->exec("insert into salarychange (id, amount, changedate)
    values (23, 50000, NOW())");
    $dbh->commit();

    } catch (Exception $e) {
    $dbh->rollBack();
    echo "Failed: " . $e->getMessage();
    }

    ÔÚÉÏÃæµÄʾÀýÖУ¬¼ÙÉèÎÒÃÇΪһ¸öйÍÔ±´´½¨Ò»×éÌõÄ¿£¬Õâ¸ö¹ÍÔ±ÓÐÒ»¸ö ID ºÅ£¬¼´ 23¡£³ýÁËÊäÈëÕâ¸öÈ˵Ļù±¾Êý¾ÝÍ⣬ÎÒÃÇ»¹ÐèÒª¼Ç¼¹ÍÔ±µÄнˮ¡£Á½¸ö¸üзֱðÍê³ÉÆðÀ´ºÜ¼òµ¥£¬µ«Í¨¹ý½«ÕâÁ½¸ö¸üаüÀ¨ÔÚ beginTransaction() ºÍ commit() µ÷ÓÃÖУ¬¾Í¿ÉÒÔ±£Ö¤ÔÚ¸ü¸ÄÍê³É֮ǰ£¬ÆäËûÈËÎÞ·¨¿´µ½¸ü¸Ä¡£Èç¹û·¢ÉúÁË´íÎó£¬catch ¿é¿ÉÒԻعöÊÂÎñ¿ªÊ¼ÒÔÀ´·¢ÉúµÄËùÓиü¸Ä£¬²¢´òÓ¡³öÒ»Ìõ´íÎóÏûÏ¢¡£

    ²¢²»ÊÇÒ»¶¨ÒªÔÚÊÂÎñÖÐ×÷³ö¸üС£ÄúÒ²¿ÉÒÔ·¢³ö¸´ÔӵIJéѯÀ´ÌáÈ¡Êý¾Ý£¬»¹¿ÉÒÔʹÓÃÄÇÖÖÐÅÏ¢¹¹½¨¸ü¶àµÄ¸üкͲéѯ¡£µ±ÊÂÎñÔڻʱ£¬¿ÉÒÔ±£Ö¤ÆäËûÈËÔÚ¹¤×÷½øÐе±ÖÐÎÞ·¨×÷³ö¸ü¸Ä¡£ÊÂʵÉÏ£¬Õâ²»ÊÇ 100% µÄÕýÈ·£¬µ«Èç¹ûÄú֮ǰûÓÐÌý˵¹ýÊÂÎñµÄ»°£¬ÕâÑù½éÉÜҲδ³¢²»¿É¡£
    ºÜ¶à¸ü³ÉÊìµÄÊý¾Ý¿â¶¼Ö§³ÖÔ¤´¦ÀíÓï¾äµÄ¸ÅÄʲôÊÇÔ¤´¦ÀíÓï¾ä£¿Äú¿ÉÒÔ°ÑÔ¤´¦ÀíÓï¾ä¿´×÷ÄúÏëÒªÔËÐÐµÄ SQL µÄÒ»ÖÖ±àÒë¹ýµÄÄ£°å£¬Ëü¿ÉÒÔʹÓñäÁ¿²ÎÊý½øÐж¨ÖÆ¡£Ô¤´¦ÀíÓï¾ä¿ÉÒÔ´øÀ´Á½´óºÃ´¦£º
    • ²éѯֻÐè½âÎö£¨»ò×¼±¸£©Ò»´Î£¬µ«ÊÇ¿ÉÒÔÓÃÏàͬ»ò²»Í¬µÄ²ÎÊýÖ´Ðжà´Î¡£µ±²éѯ׼±¸ºÃºó£¬Êý¾Ý¿â½«·ÖÎö¡¢±àÒëºÍÓÅ»¯Ö´ÐиòéѯµÄ¼Æ»®¡£¶ÔÓÚ¸´ÔӵIJé ѯ£¬Õâ¸ö¹ý³ÌÒª»¨±È½Ï³¤µÄʱ¼ä£¬Èç¹ûÄúÐèÒªÒÔ²»Í¬²ÎÊý¶à´ÎÖØ¸´ÏàͬµÄ²éѯ£¬ÄÇô¸Ã¹ý³Ì½«´ó´ó½µµÍÓ¦ÓóÌÐòµÄËÙ¶È¡£Í¨¹ýʹÓÃÔ¤´¦ÀíÓï¾ä£¬¿ÉÒÔ±ÜÃâÖØ¸´·ÖÎö/ ±àÒë/ÓÅ»¯ÖÜÆÚ¡£¼òÑÔÖ®£¬Ô¤´¦ÀíÓï¾äʹÓøüÉÙµÄ×ÊÔ´£¬Òò¶øÔËÐеøü¿ì¡£
    • Ìṩ¸øÔ¤´¦ÀíÓï¾äµÄ²ÎÊý²»ÐèÒªÓÃÒýºÅÀ¨ÆðÀ´£¬Çý¶¯³ÌÐò»á´¦ÀíÕâЩ¡£Èç¹ûÓ¦ÓóÌÐò¶ÀÕ¼µØÊ¹ÓÃÔ¤´¦ÀíÓï¾ä£¬ÄÇô¿ÉÒÔÈ·±£Ã»ÓÐ SQL ÈëÇÖ·¢Éú¡££¨È»¶ø£¬Èç¹ûÄúÈÔÈ»½«²éѯµÄÆäËû²¿·Ö½¨Á¢ÔÚ²»ÊÜÐÅÈεÄÊäÈëÖ®ÉÏ£¬ÄÇô¾ÍÈÔÈ»´æÔÚ·çÏÕ£©¡£

    Ô¤´¦ÀíÓï¾äÊÇÈç´ËÓÐÓã¬ÒÔÖ PDO ʵ¼ÊÉÏ´òÆÆÁËÔÚÄ¿±ê 4 ÖÐÉèÏµĹæÔò£ºÈç¹ûÇý¶¯³ÌÐò²»Ö§³ÖÔ¤´¦ÀíÓï¾ä£¬ÄÇô PDO ½«·ÂÕæÔ¤´¦ÀíÓï¾ä¡£


    ʵÀý£ºPDOµÄÓ¦ÓÃÀý×Ó£º

    <?php
    $dbms='mysql'; //Êý¾Ý¿âÀàÐÍ Oracle ÓÃODI,¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ£¬Ê¹Óò»Í¬µÄÊý¾Ý¿â£¬Ö»Òª¸ÄÕâ¸ö£¬²»ÓüÇסÄÇô¶àµÄº¯ÊýÁË

    $host='localhost'; //Êý¾Ý¿âÖ÷»úÃû

    $dbName='test'; //ʹÓõÄÊý¾Ý¿â

    $user='root'; //Êý¾Ý¿âÁ¬½ÓÓû§Ãû

    $pass=''; //¶ÔÓ¦µÄÃÜÂë

    $dsn="$dbms:host=$host;dbname=$dbName";


    class db extends PDO {
    public function __construct(){
    try {
    parent::__construct("$GLOBALS[dsn]", $GLOBALS['user'], $GLOBALS['pass']);
    } catch (PDOException $e) {
    die("Error: " . $e->__toString() . "<br/>");
    }
    }

    public final function query($sql){
    try {
    return parent::query($this->setString($sql));
    }catch (PDOException $e){
    die("Error: " . $e->__toString() . "<br/>");
    }
    }

    private final function setString($sql){
    echo "ÎÒÒª´¦ÀíÒ»ÏÂ$sql";
    return $sql;
    }
    }

    $db=new db();
    $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
    foreach ($db->query('SELECT * from xxxx_menu') as $row) {
    print_r($row);
    }
    $db->exec('DELETE FROM  `xxxx_menu` where mid=43');
    ?>

  •  

    ÆÀÂÛ (0) All