ÔÚʹÓÃphpÖÐʹÓÃÊý¾Ý¿âÊÂÎñ´¦Àí²¢²»¸´ÔÓ£¬Ö÷ÒªÓõ½µÄÊÇmysqliÀàµÄ3¸ö³ÉÔ±º¯Êý¡£
£¨1£©autocommit£¨bool mode£©£¬ÉèÖÃÊý¾Ý¿â×Ô¶¯Ìύ״̬¡£µ±modeΪTRUEʱ£¬´ò¿ª×Ô¶¯Ìá½»ÉèÖ㬵±modeΪFASLEʱ£¬¹Ø±Õ×Ô¶¯ÉèÖá£Ëùν×Ô¶¯Ìá½»£¬¾ÍÊÇMYSQLÿִÐÐÒ»ÌõSQLÓï¾ä£¬¸ÃSQLÓï¾äµÄÖ´Ðнá¹ûÂíÉÏÉúЧ¡£¶ø·Ç×Ô¶¯Ìύʱ£¬ÔòÖ´Ðнá¹ûÒªÒ»Ö±µ½commit£¨£©Óï¾ä±»Ö´ÐÐʱÉúЧ£¬»òÕßµ½rollback£¨£©Óï¾ä±»Ö´ÐÐʱִÐнá¹û±»È¡Ïû£¬Êý¾Ý¿â»Ø¸´µ½µ±Ç°ÊÂÎñ֮ǰµÄ״̬¡£ÁíÍ⣬±¾º¯ÊýÖ»Ó°Ï쵱ǰÊý¾Ý¿âÁ¬½Ó¼ä·¢ÉúµÄÊý¾Ý¿â²Ù×÷£¬¼´ÔÚÒ»ÏÂÒ»Êý¾Ý¿âÁ¬½Ó½¨Á¢Ö®ºó£¬×Ô¶¯Ìύ״̬½«¸´³ÉMysqlÊý¾Ý¿âÄÚ²¿µÄÉèÖá£
£¨2£©commit(),Ìá½»µ±Ç°ÊÂÎñµÄÖ´Ðнá¹û¡£
£¨3£©rollback£¨£©£¬È¡Ïûµ±Ç°ÊÂÎñµÄÖ´Ðнá¹û¡£
PHPÖÐʹÓÃÊÂÎñ´¦ÀíµÄ´úÂë¿ò¼ÜÈçÏÂËùʾ£º
<?php
$conn=db_connect();//Á¬½ÓÊý¾Ý¿â¸Ãº¯ÊýΪÁíÍⶨÒåµÄ¡£
$conn->autocommit(FALSE);
$rsl = $conn->query($sql1);
$rs2 = $conn->query($sql2);
...
$rsn= $conn->query($sqln);
if($rs1&&$rs2&&...&$sqln)
$conn->commit();
else
$conn->rollback();
$conn->close();
?>
......
ʹÓÃPHPµÄcURL¿â¿ÉÒÔ¼òµ¥ºÍÓÐЧµØÈ¥×¥ÍøÒ³¡£ÄãÖ»ÐèÒªÔËÐÐÒ»¸ö½Å±¾£¬È»ºó·ÖÎöÒ»ÏÂÄãËùץȡµÄÍøÒ³£¬È»ºó¾Í¿ÉÒÔÒÔ³ÌÐòµÄ·½Ê½µÃµ½ÄãÏëÒªµÄÊý¾ÝÁË¡£ÎÞÂÛ
ÊÇÄãÏë´Ó´ÓÒ»¸öÁ´½ÓÉÏÈ¡²¿·ÖÊý¾Ý£¬»òÊÇȡһ¸öXMLÎļþ²¢°ÑÆäµ¼ÈëÊý¾Ý¿â£¬ÄÇžÍÊǼòµ¥µÄ»ñÈ¡ÍøÒ³ÄÚÈÝ£¬cURL
ÊÇÒ»¸ö¹¦ÄÜÇ¿´óµÄPHP¿â¡£±¾ÎÄÖ÷Òª½²ÊöÈç¹ûʹÓÃÕâ¸öPHP¿â¡£
ÆôÓÃ cURL ÉèÖÃ
Ê×ÏÈ£¬ÎÒÃǵÃÏÈҪȷ¶¨ÎÒÃǵÄPHPÊÇ·ñ¿ªÆôÁËÕâ¸ö¿â£¬Äã¿ÉÒÔͨ¹ýʹÓÃphp_info()º¯ÊýÀ´µÃµ½ÕâÒ»ÐÅÏ¢¡£
﹤?php
phpinfo();
?﹥
Èç¹ûÄã¿ÉÒÔÔÚÍøÒ³ÉÏ¿´µ½ÏÂÃæµÄÊä³ö£¬ÄÇô±íʾcURL¿âÒѱ»¿ªÆô¡£
Èç¹ûÄã¿´µ½µÄ»°£¬ÄÇôÄãÐèÒªÉèÖÃÄãµÄPHP²¢¿ªÆôÕâ¸ö¿â¡£Èç¹ûÄãÊÇÔÚWindowsƽ̨Ï£¬ÄÇô·Ç³£¼òµ¥£¬ÄãÐèÒª¸ÄÒ»¸ÄÄãµÄphp.iniÎļþµÄÉèÖã¬ÕÒµ½php_curl.dll£¬²¢È¡ÏûÇ°ÃæµÄ·ÖºÅ×¢Ê;ÍÐÐÁË¡£ÈçÏÂËùʾ£º
//È¡ÏûÏÂÔÚµÄ×¢ÊÍ
extension=php_curl.dll
Èç¹ûÄãÊÇÔÚLinuxÏÂÃæ£¬ÄÇô£¬ÄãÐèÒªÖØÐ±àÒëÄãµÄPHPÁË£¬±à¼Ê±£¬ÄãÐèÒª´ò¿ª±àÒë²ÎÊý——ÔÚconfigureÃüÁîÉϼÓÉÏ“–with-curl” ²ÎÊý¡£
Ò»¸öСʾÀý
Èç¹ûÒ»ÇоÍÐ÷£¬ÏÂÃæÊÇÒ»¸öСÀý³Ì£º
﹤?php
// ³õʼ»¯Ò»¸ö cURL ¶ÔÏó
$curl = curl_init();
// ÉèÖÃÄãÐèÒª× ......
just get a json
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<mce:script src="jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js" type="text/javascript"></mce:script>
</head>
<body>
<mce:script type="text/javascript"><!--
function getjson(){
$.getJSON('json.php',function(data){
var content="";
for(var i=0;i<data.length;i++){//Ñ»·¶ÁÈ¡ºǫ́µÄÈ¡µÃµÄJSONÊý¾Ý
content+=data[i].name;
var par="Åŵ²£º";
for(var j=0;j<data[i].par.length;j++){//Ñ»·¶ÁÈ¡Êý¾ÝÖеÄpar¼¯ºÏ
par+=data[i].par[j]+"¡¢";
}
content+=par+"<br/>";
......
just get a json
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<mce:script src="jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js" type="text/javascript"></mce:script>
</head>
<body>
<mce:script type="text/javascript"><!--
function getjson(){
$.getJSON('json.php',function(data){
var content="";
for(var i=0;i<data.length;i++){//Ñ»·¶ÁÈ¡ºǫ́µÄÈ¡µÃµÄJSONÊý¾Ý
content+=data[i].name;
var par="Åŵ²£º";
for(var j=0;j<data[i].par.length;j++){//Ñ»·¶ÁÈ¡Êý¾ÝÖеÄpar¼¯ºÏ
par+=data[i].par[j]+"¡¢";
}
content+=par+"<br/>";
......
iconvº¯Êý¿âÄܹ»Íê³É¸÷ÖÖ×Ö·û¼¯¼äµÄת»»£¬ÊÇphp±à³ÌÖв»¿ÉȱÉٵĻù´¡º¯Êý¿â¡£
1¡¢ÏÂÔØlibiconvº¯Êý¿âhttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz£»
2¡¢½âѹËõtar -zxvf libiconv-1.9.2.tar.gz;
3¡¢°²×°libiconv
££configure --prefix=/usr/local/iconv
#make
#make install
4¡¢ÖØÐ±àÒëphp Ôö¼Ó±àÒë²ÎÊý--with-iconv=/usr/local/iconv
windowsÏÂ
×î½üÔÚ×öÒ»¸öС͵³ÌÐò£¬ÐèÒªÓõ½iconvº¯Êý°ÑץȡÀ´¹ýµÄutf-8±àÂëµÄÒ³Ãæ×ª³Égb2312£¬ ·¢ÏÖÖ»ÓÐÓÃiconvº¯Êý°Ñץȡ¹ýÀ´µÄÊý¾ÝһתÂëÊý¾Ý¾Í»áÎÞÔµÎ޹ʵÄÉÙһЩ¡£ ÈÃÎÒÓôÃÆÁ˺ÃÒ»»á¶ù£¬È¥ÍøÉÏÒ»²é×ÊÁϲÅÖªµÀÕâÊÇiconvº¯ÊýµÄÒ»¸öbug¡£iconvÔÚת»»×Ö·û"—"µ½gb2312ʱ»á³ö´í
½â¾ö·½·¨ºÜ¼òµ¥£¬¾ÍÊÇÔÚÐèҪת³ÉµÄ±àÂëºó¼Ó "//IGNORE" Ò²¾ÍÊÇiconvº¯ÊýµÚ¶þ¸ö²ÎÊýºó.ÈçÏ£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
iconv("UTF-8","GB2312//IGNORE",$data)
ignoreµÄÒâ˼ÊǺöÂÔת»»Ê±µÄ´íÎó£¬Èç¹ûûÓÐignore²ÎÊý£¬ËùÓиÃ×Ö·ûºóÃæµÄ×Ö·û´®¶¼ÎÞ·¨±»±£´æ¡£
iconv²»ÊÇphpµÄĬÈϺ¯Êý£¬Ò²ÊÇĬÈϰ²×°µÄÄ£¿é¡£ÐèÒª°²×°²ÅÄÜÓõġ£
Èç¹ûÊÇwindows2000+php£¬Äã¿ÉÒÔÐÞ¸Äphp.iniÎļþ£ ......
.$dbhost = 'localhost';
$dbuser = 'root'; //ÄãµÄmysqlÓû§Ãû
$dbpass = '123456'; //ÄãµÄmysqlÃÜÂë
$dbname = 'data'; //ÄãµÄmysql¿âÃû
//Á¬½Ó±¾µØÊý¾Ý¿â
$GLOBALS["conn"] = mysql_connect($dbhost,$dbuser,$dbpass);
//´ò¿ªÊý¾Ý¿â
mysql_select_db($dbname,$GLOBALS["conn"]);
?>
2.php¶ÁÈ¡Êý¾Ý¿âÖÐ,ijһ×Ö¶ÎÖµ
<?php
//¶ÁȡһÁÐÊý¾Ý
$sql="select * from ec_admin";
$result = mysql_query($sql,$GLOBALS["conn"]);
printf("Óû§Ãû: %s<br>\n", mysql_result($result,3,"UserName"));
printf("ÃÜÂë: %s<br>\n", mysql_result($result,3,"UserPass"));
?> ......
Ê×ÏÈ£¬½¨InnoDBÀàÐÍµÄ±í£¬²ÅÄÜÖ§³ÖÊÂÎñ
$handler = mysql_connect('localhost', '', '');
mysql_select_db('test');
mysql_query('SET AUTOCOMMIT=0'); // ÉèÖÃΪ²»×Ô¶¯Ìá½»²éѯ
mysql_query('START TRANSACTION'); // ¿ªÊ¼²éѯ£¬ÕâÀïÒ²¿ÉÒÔʹÓÃBEGIN
mysql_query("INSERT INTO users VALUES ('ccc')");
mysql_query("DELETE from users WHERE username = 'aac'");
if (mysql_affected_rows($handler) == 0)
mysql_query('ROLLBACK'); // Èç¹ûɾ³ýδÕÒµ½ÏàÓ¦µÄ¼Ç¼Ôò»Ø¹ö£¬²»Ö´ÐÐÉÏÃæµÄ²åÈë²éѯ
mysql_query('COMMIT');
mysql_close($handler); ......
Ê×ÏÈ£¬½¨InnoDBÀàÐÍµÄ±í£¬²ÅÄÜÖ§³ÖÊÂÎñ
$handler = mysql_connect('localhost', '', '');
mysql_select_db('test');
mysql_query('SET AUTOCOMMIT=0'); // ÉèÖÃΪ²»×Ô¶¯Ìá½»²éѯ
mysql_query('START TRANSACTION'); // ¿ªÊ¼²éѯ£¬ÕâÀïÒ²¿ÉÒÔʹÓÃBEGIN
mysql_query("INSERT INTO users VALUES ('ccc')");
mysql_query("DELETE from users WHERE username = 'aac'");
if (mysql_affected_rows($handler) == 0)
mysql_query('ROLLBACK'); // Èç¹ûɾ³ýδÕÒµ½ÏàÓ¦µÄ¼Ç¼Ôò»Ø¹ö£¬²»Ö´ÐÐÉÏÃæµÄ²åÈë²éѯ
mysql_query('COMMIT');
mysql_close($handler); ......