锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品xxx在线观看www,亚洲精品一区二区三区婷婷月
,国产综合激情 http://www.shnenglu.com/wanghaiguang/category/20408.html閫嗘按琛岃垷錛屼笉榪涘垯閫 zh-cn Fri, 29 Nov 2013 08:55:25 GMT Fri, 29 Nov 2013 08:55:25 GMT 60 MySQL鎬ц兘浼樺寲鐨勬渶浣?0+鏉$粡楠?/title> http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204490.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Thu, 28 Nov 2013 03:40:00 GMT http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204490.html http://www.shnenglu.com/wanghaiguang/comments/204490.html http://www.shnenglu.com/wanghaiguang/archive/2013/11/28/204490.html#Feedback 0 http://www.shnenglu.com/wanghaiguang/comments/commentRss/204490.html http://www.shnenglu.com/wanghaiguang/services/trackbacks/204490.html 浠婂ぉ錛屾暟鎹簱鐨勬搷浣滆秺鏉ヨ秺鎴愪負鏁翠釜搴旂敤鐨勬ц兘鐡墮浜嗭紝榪欑偣瀵逛簬Web搴旂敤灝ゅ叾鏄庢樉銆傚叧浜庢暟鎹簱鐨勬ц兘錛岃繖騫朵笉鍙槸DBA鎵嶉渶瑕佹媴蹇冪殑浜嬶紝鑰岃繖鏇存槸鎴戜滑紼嬪簭鍛橀渶瑕佸幓鍏蟲敞鐨勪簨鎯呫傚綋鎴戜滑鍘昏璁℃暟鎹簱琛ㄧ粨鏋勶紝瀵規搷浣滄暟鎹簱鏃訛紙灝ゅ叾鏄煡琛ㄦ椂鐨凷QL璇彞錛夛紝鎴戜滑閮介渶瑕佹敞鎰忔暟鎹搷浣滅殑鎬ц兘銆傝繖閲岋紝鎴戜滑涓嶄細璁茶繃澶氱殑SQL璇彞鐨勪紭鍖栵紝鑰屽彧鏄拡瀵筂ySQL榪欎竴Web搴旂敤鏈澶氱殑鏁版嵁搴撱傚笇鏈涗笅闈㈢殑榪欎簺浼樺寲鎶宸у浣犳湁鐢ㄣ?/p>1. 涓烘煡璇㈢紦瀛樹紭鍖栦綘鐨勬煡璇?/h4> 澶у鏁扮殑MySQL鏈嶅姟鍣ㄩ兘寮鍚簡鏌ヨ緙撳瓨銆傝繖鏄彁楂樻ф渶鏈夋晥鐨勬柟娉曚箣涓錛岃屼笖榪欐槸琚玀ySQL鐨勬暟鎹簱寮曟搸澶勭悊鐨勩傚綋鏈夊緢澶氱浉鍚岀殑鏌ヨ琚墽琛屼簡澶氭鐨勬椂鍊欙紝榪欎簺鏌ヨ緇撴灉浼氳鏀懼埌涓涓紦瀛樹腑錛岃繖鏍鳳紝鍚庣畫鐨勭浉鍚岀殑鏌ヨ灝變笉鐢ㄦ搷浣滆〃鑰岀洿鎺ヨ闂紦瀛樼粨鏋滀簡銆?/p>
榪欓噷鏈涓昏鐨勯棶棰樻槸錛屽浜庣▼搴忓憳鏉ヨ錛岃繖涓簨鎯呮槸寰堝鏄撹蹇界暐鐨勩傚洜涓猴紝鎴戜滑鏌愪簺鏌ヨ璇彞浼氳MySQL涓嶄嬌鐢ㄧ紦瀛樸傝鐪嬩笅闈㈢殑紺轟緥錛?br />
// 鏌ヨ緙撳瓨涓嶅紑鍚?/span> $r = mysql_query(" SELECT username FROM user WHERE signup_date >= CURDATE()"); // 寮鍚煡璇㈢紦瀛?/span> $today = date("Y - m - d"); $r = mysql_query(" SELECT username FROM user WHERE signup_date >= ' $today ' ");
涓婇潰涓ゆ潯SQL璇彞鐨勫樊鍒氨鏄?CURDATE() 錛孧ySQL鐨勬煡璇㈢紦瀛樺榪欎釜鍑芥暟涓嶈搗浣滅敤銆傛墍浠ワ紝鍍?NOW() 鍜?RAND() 鎴栨槸鍏跺畠鐨勮濡傛綾葷殑SQL鍑芥暟閮戒笉浼氬紑鍚煡璇㈢紦瀛橈紝鍥犱負榪欎簺鍑芥暟鐨勮繑鍥炴槸浼氫笉瀹氱殑鏄撳彉鐨勩傛墍浠ワ紝浣犳墍闇瑕佺殑灝辨槸鐢ㄤ竴涓彉閲忔潵浠f浛MySQL鐨勫嚱鏁幫紝浠庤屽紑鍚紦瀛樸?/p>
2. EXPLAIN 浣犵殑 SELECT 鏌ヨ 浣跨敤 EXPLAIN 鍏抽敭瀛楀彲浠ヨ浣犵煡閬揗ySQL鏄浣曞鐞嗕綘鐨凷QL璇彞鐨勩傝繖鍙互甯綘鍒嗘瀽浣犵殑鏌ヨ璇彞鎴栨槸琛ㄧ粨鏋勭殑鎬ц兘鐡墮銆?/p>
EXPLAIN 鐨勬煡璇㈢粨鏋滆繕浼氬憡璇変綘浣犵殑绱㈠紩涓婚敭琚浣曞埄鐢ㄧ殑錛屼綘鐨勬暟鎹〃鏄浣曡鎼滅儲鍜屾帓搴忕殑……絳夌瓑錛岀瓑絳夈?/p>
鎸戜竴涓綘鐨凷ELECT璇彞錛堟帹鑽愭寫閫夐偅涓渶澶嶆潅鐨勶紝鏈夊琛ㄨ仈鎺ョ殑錛夛紝鎶婂叧閿瓧EXPLAIN鍔犲埌鍓嶉潰銆備綘鍙互浣跨敤phpmyadmin鏉ュ仛榪欎釜浜嬨傜劧鍚庯紝浣犱細鐪嬪埌涓寮犺〃鏍箋備笅闈㈢殑榪欎釜紺轟緥涓紝鎴戜滑蹇樿鍔犱笂浜唃roup_id绱㈠紩錛屽茍涓旀湁琛ㄨ仈鎺ワ細
褰撴垜浠負 group_id 瀛楁鍔犱笂绱㈠紩鍚庯細
鎴戜滑鍙互鐪嬪埌錛屽墠涓涓粨鏋滄樉紺烘悳绱簡 7883 琛岋紝鑰屽悗涓涓彧鏄悳绱簡涓や釜琛ㄧ殑 9 鍜?16 琛屻傛煡鐪媟ows鍒楀彲浠ヨ鎴戜滑鎵懼埌娼滃湪鐨勬ц兘闂銆?/p>
3. 褰撳彧瑕佷竴琛屾暟鎹椂浣跨敤 LIMIT 1 褰撲綘鏌ヨ琛ㄧ殑鏈変簺鏃跺欙紝浣犲凡緇忕煡閬撶粨鏋滃彧浼氭湁涓鏉$粨鏋滐紝浣嗗洜涓轟綘鍙兘闇瑕佸幓fetch娓告爣錛屾垨鏄綘涔熻浼氬幓媯鏌ヨ繑鍥炵殑璁板綍鏁般?/p>
鍦ㄨ繖縐嶆儏鍐典笅錛屽姞涓?LIMIT 1 鍙互澧炲姞鎬ц兘銆傝繖鏍蜂竴鏍鳳紝MySQL鏁版嵁搴撳紩鎿庝細鍦ㄦ壘鍒頒竴鏉℃暟鎹悗鍋滄鎼滅儲錛岃屼笉鏄戶緇線鍚庢煡灝戜笅涓鏉$鍚堣褰曠殑鏁版嵁銆?/p>
涓嬮潰鐨勭ず渚嬶紝鍙槸涓轟簡鎵句竴涓嬫槸鍚︽湁“涓浗”鐨勭敤鎴鳳紝寰堟槑鏄撅紝鍚庨潰鐨勪細姣斿墠闈㈢殑鏇存湁鏁堢巼銆傦紙璇鋒敞鎰忥紝絎竴鏉′腑鏄疭elect *錛岀浜屾潯鏄疭elect 1錛?br />
// 娌℃湁鏁堢巼鐨勶細 $r = mysql_query(" SELECT * FROM user WHERE country = ' China ' "); if (mysql_num_rows($r) > 0 ) { // } // 鏈夋晥鐜囩殑錛?/span> $r = mysql_query(" SELECT 1 FROM user WHERE country = ' China ' LIMIT 1 "); if (mysql_num_rows($r) > 0 ) { // } 4. 涓烘悳绱㈠瓧孌靛緩绱㈠紩 绱㈠紩騫朵笉涓瀹氬氨鏄粰涓婚敭鎴栨槸鍞竴鐨勫瓧孌點傚鏋滃湪浣犵殑琛ㄤ腑錛屾湁鏌愪釜瀛楁浣犳昏浼氱粡甯哥敤鏉ュ仛鎼滅儲錛岄偅涔堬紝璇蜂負鍏跺緩绔嬬儲寮曞惂銆?/p>
浠庝笂鍥句綘鍙互鐪嬪埌閭d釜鎼滅儲瀛椾覆 “last_name LIKE ‘a%’”錛屼竴涓槸寤轟簡绱㈠紩錛屼竴涓槸娌℃湁绱㈠紩錛屾ц兘宸簡4鍊嶅乏鍙熾?/p>
鍙﹀錛屼綘搴旇涔熼渶瑕佺煡閬撲粈涔堟牱鐨勬悳绱㈡槸涓嶈兘浣跨敤姝e父鐨勭儲寮曠殑銆備緥濡傦紝褰撲綘闇瑕佸湪涓綃囧ぇ鐨勬枃绔犱腑鎼滅儲涓涓瘝鏃訛紝濡傦細 “WHERE post_content LIKE ‘%apple%’”錛岀儲寮曞彲鑳芥槸娌℃湁鎰忎箟鐨勩備綘鍙兘闇瑕佷嬌鐢?a target="_blank" style="color: #2970a6; text-decoration: none;">MySQL鍏ㄦ枃绱㈠紩 鎴栨槸鑷繁鍋氫竴涓儲寮曪紙姣斿璇達細鎼滅儲鍏抽敭璇嶆垨鏄疶ag浠涔堢殑錛?/p>
5. 鍦↗oin琛ㄧ殑鏃跺欎嬌鐢ㄧ浉褰撶被鍨嬬殑渚嬶紝騫跺皢鍏剁儲寮?/h4> 濡傛灉浣犵殑搴旂敤紼嬪簭鏈夊緢澶?JOIN 鏌ヨ錛屼綘搴旇紜涓や釜琛ㄤ腑Join鐨勫瓧孌墊槸琚緩榪囩儲寮曠殑銆傝繖鏍鳳紝MySQL鍐呴儴浼氬惎鍔ㄤ負浣犱紭鍖朖oin鐨凷QL璇彞鐨勬満鍒躲?/p>
鑰屼笖錛岃繖浜涜鐢ㄦ潵Join鐨勫瓧孌碉紝搴旇鏄浉鍚岀殑綾誨瀷鐨勩備緥濡傦細濡傛灉浣犺鎶?DECIMAL 瀛楁鍜屼竴涓?INT 瀛楁Join鍦ㄤ竴璧鳳紝MySQL灝辨棤娉曚嬌鐢ㄥ畠浠殑绱㈠紩銆傚浜庨偅浜汼TRING綾誨瀷錛岃繕闇瑕佹湁鐩稿悓鐨勫瓧絎﹂泦鎵嶈銆傦紙涓や釜琛ㄧ殑瀛楃闆嗘湁鍙兘涓嶄竴鏍鳳級
// 鍦╯tate涓煡鎵綾ompany $r = mysql_query(" SELECT company_name FROM users LEFT JOIN companies ON (users.state = companies.state) WHERE users.id = $ user_id "); // 涓や釜 state 瀛楁搴旇鏄寤鴻繃绱㈠紩鐨勶紝鑰屼笖搴旇鏄浉褰撶殑綾誨瀷錛岀浉鍚岀殑瀛楃闆嗐?/span>
6. 鍗冧竾涓嶈 ORDER BY RAND() 鎯蟲墦涔辮繑鍥炵殑鏁版嵁琛岋紵闅忔満鎸戜竴涓暟鎹紵鐪熶笉鐭ラ亾璋佸彂鏄庝簡榪欑鐢ㄦ硶錛屼絾寰堝鏂版墜寰堝枩嬈㈣繖鏍風敤銆備絾浣犵‘涓嶄簡瑙h繖鏍峰仛鏈夊涔堝彲鎬曠殑鎬ц兘闂銆?/p>
濡傛灉浣犵湡鐨勬兂鎶婅繑鍥炵殑鏁版嵁琛屾墦涔變簡錛屼綘鏈塏縐嶆柟娉曞彲浠ヨ揪鍒拌繖涓洰鐨勩傝繖鏍蜂嬌鐢ㄥ彧璁╀綘鐨勬暟鎹簱鐨勬ц兘鍛堟寚鏁扮駭鐨勪笅闄嶃傝繖閲岀殑闂鏄細MySQL浼氫笉寰椾笉鍘繪墽琛孯AND()鍑芥暟錛堝緢鑰桟PU鏃墮棿錛夛紝鑰屼笖榪欐槸涓轟簡姣忎竴琛岃褰曞幓璁拌錛岀劧鍚庡啀瀵瑰叾鎺掑簭銆傚氨綆楁槸浣犵敤浜哃imit 1涔熸棤嫻庝簬浜嬶紙鍥犱負瑕佹帓搴忥級
涓嬮潰鐨勭ず渚嬫槸闅忔満鎸戜竴鏉¤褰?/p>
// 鍗冧竾涓嶈榪欐牱鍋氾細 $r = mysql_query(" SELECT username FROM user ORDER BY RAND () LIMIT 1 "); // 榪欒浼氭洿濂斤細 $r = mysql_query(" SELECT count ( * ) FROM user "); $d = mysql_fetch_row($r); $ rand = mt_rand( 0 ,$d [ 0 ] - 1 ); $r = mysql_query(" SELECT username FROM user LIMIT $ rand , 1 ");
7. 閬垮厤 SELECT * 浠庢暟鎹簱閲岃鍑鴻秺澶氱殑鏁版嵁錛岄偅涔堟煡璇㈠氨浼氬彉寰楄秺鎱€傚茍涓旓紝濡傛灉浣犵殑鏁版嵁搴撴湇鍔″櫒鍜學EB鏈嶅姟鍣ㄦ槸涓ゅ彴鐙珛鐨勬湇鍔″櫒鐨勮瘽錛岃繖榪樹細澧炲姞緗戠粶浼犺緭鐨勮礋杞姐?/p>
鎵浠ワ紝浣犲簲璇ュ吇鎴愪竴涓渶瑕佷粈涔堝氨鍙栦粈涔堢殑濂界殑涔犳儻銆?br />
// 涓嶆帹鑽?/span> $r = mysql_query(" SELECT * FROM user WHERE user_id = 1 "); $d = mysql_fetch_assoc($r); echo "Welcome {$d [ 'username' ] }"; // 鎺ㄨ崘 $r = mysql_query(" SELECT username FROM user WHERE user_id = 1 "); $d = mysql_fetch_assoc($r); echo "Welcome {$d [ 'username' ] }";
8. 姘歌繙涓烘瘡寮犺〃璁劇疆涓涓狪D 鎴戜滑搴旇涓烘暟鎹簱閲岀殑姣忓紶琛ㄩ兘璁劇疆涓涓狪D鍋氫負鍏朵富閿紝鑰屼笖鏈濂界殑鏄竴涓狪NT鍨嬬殑錛堟帹鑽愪嬌鐢║NSIGNED錛夛紝騫惰緗笂鑷姩澧炲姞鐨凙UTO_INCREMENT鏍囧織銆?/p>
灝辯畻鏄綘 users 琛ㄦ湁涓涓富閿彨 “email”鐨勫瓧孌碉紝浣犱篃鍒瀹冩垚涓轟富閿備嬌鐢?VARCHAR 綾誨瀷鏉ュ綋涓婚敭浼氫嬌鐢ㄥ緱鎬ц兘涓嬮檷銆傚彟澶栵紝鍦ㄤ綘鐨勭▼搴忎腑錛屼綘搴旇浣跨敤琛ㄧ殑ID鏉ユ瀯閫犱綘鐨勬暟鎹粨鏋勩?/p>
鑰屼笖錛屽湪MySQL鏁版嵁寮曟搸涓嬶紝榪樻湁涓浜涙搷浣滈渶瑕佷嬌鐢ㄤ富閿紝鍦ㄨ繖浜涙儏鍐典笅錛屼富閿殑鎬ц兘鍜岃緗彉寰楅潪甯擱噸瑕侊紝姣斿錛岄泦緹わ紝鍒嗗尯……
鍦ㄨ繖閲岋紝鍙湁涓涓儏鍐墊槸渚嬪錛岄偅灝辨槸“鍏寵仈琛?#8221;鐨?#8220;澶栭敭”錛屼篃灝辨槸璇達紝榪欎釜琛ㄧ殑涓婚敭錛岄氳繃鑻ュ共涓埆鐨勮〃鐨勪富閿瀯鎴愩傛垜浠妸榪欎釜鎯呭喌鍙仛“澶栭敭”銆傛瘮濡傦細鏈変竴涓?#8220;瀛︾敓琛?#8221;鏈夊鐢熺殑ID錛屾湁涓涓?#8220;璇劇▼琛?#8221;鏈夎紼婭D錛岄偅涔堬紝“鎴愮嘩琛?#8221;灝辨槸“鍏寵仈琛?#8221;浜嗭紝鍏跺叧鑱斾簡瀛︾敓琛ㄥ拰璇劇▼琛紝鍦ㄦ垚緇╄〃涓紝瀛︾敓ID鍜岃紼婭D鍙?#8220;澶栭敭”鍏跺叡鍚岀粍鎴愪富閿?/p>
9. 浣跨敤 ENUM 鑰屼笉鏄?VARCHAR ENUM 綾誨瀷鏄潪甯稿揩鍜岀揣鍑戠殑銆傚湪瀹為檯涓婏紝鍏朵繚瀛樼殑鏄?TINYINT錛屼絾鍏跺琛ㄤ笂鏄劇ず涓哄瓧絎︿覆銆傝繖鏍蜂竴鏉ワ紝鐢ㄨ繖涓瓧孌墊潵鍋氫竴浜涢夐」鍒楄〃鍙樺緱鐩稿綋鐨勫畬緹庛?/p>
濡傛灉浣犳湁涓涓瓧孌碉紝姣斿“鎬у埆”錛?#8220;鍥藉”錛?#8220;姘戞棌”錛?#8220;鐘舵?#8221;鎴?#8220;閮ㄩ棬”錛屼綘鐭ラ亾榪欎簺瀛楁鐨勫彇鍊兼槸鏈夐檺鑰屼笖鍥哄畾鐨勶紝閭d箞錛屼綘搴旇浣跨敤 ENUM 鑰屼笉鏄?VARCHAR銆?/p>
MySQL涔熸湁涓涓?#8220;寤鴻”錛堣絎崄鏉★級鍛婅瘔浣犳庝箞鍘婚噸鏂扮粍緇囦綘鐨勮〃緇撴瀯銆傚綋浣犳湁涓涓?VARCHAR 瀛楁鏃訛紝榪欎釜寤鴻浼氬憡璇変綘鎶婂叾鏀規垚 ENUM 綾誨瀷銆備嬌鐢?PROCEDURE ANALYSE() 浣犲彲浠ュ緱鍒扮浉鍏崇殑寤鴻銆?/p>
10. 浠?PROCEDURE ANALYSE() 鍙栧緱寤鴻 PROCEDURE ANALYSE() 浼氳 MySQL 甯綘鍘誨垎鏋愪綘鐨勫瓧孌靛拰鍏跺疄闄呯殑鏁版嵁錛屽茍浼氱粰浣犱竴浜涙湁鐢ㄧ殑寤鴻銆傚彧鏈夎〃涓湁瀹為檯鐨勬暟鎹紝榪欎簺寤鴻鎵嶄細鍙樺緱鏈夌敤錛屽洜涓鴻鍋氫竴浜涘ぇ鐨勫喅瀹氭槸闇瑕佹湁鏁版嵁浣滀負鍩虹鐨勩?/p>
渚嬪錛屽鏋滀綘鍒涘緩浜嗕竴涓?INT 瀛楁浣滀負浣犵殑涓婚敭錛岀劧鑰屽茍娌℃湁澶鐨勬暟鎹紝閭d箞錛孭ROCEDURE ANALYSE()浼氬緩璁綘鎶婅繖涓瓧孌電殑綾誨瀷鏀規垚 MEDIUMINT 銆傛垨鏄綘浣跨敤浜嗕竴涓?VARCHAR 瀛楁錛屽洜涓烘暟鎹笉澶氾紝浣犲彲鑳戒細寰楀埌涓涓浣犳妸瀹冩敼鎴?ENUM 鐨勫緩璁傝繖浜涘緩璁紝閮芥槸鍙兘鍥犱負鏁版嵁涓嶅澶氾紝鎵浠ュ喅絳栧仛寰楀氨涓嶅鍑嗐?/p>
鍦╬hpmyadmin閲岋紝浣犲彲浠ュ湪鏌ョ湅琛ㄦ椂錛岀偣鍑?“Propose table structure” 鏉ユ煡鐪嬭繖浜涘緩璁?/p>
涓瀹氳娉ㄦ剰錛岃繖浜涘彧鏄緩璁紝鍙湁褰撲綘鐨勮〃閲岀殑鏁版嵁瓚婃潵瓚婂鏃訛紝榪欎簺寤鴻鎵嶄細鍙樺緱鍑嗙‘銆備竴瀹氳璁頒綇錛屼綘鎵嶆槸鏈緇堝仛鍐沖畾鐨勪漢銆?/p>
11. 灝藉彲鑳界殑浣跨敤 NOT NULL 闄ら潪浣犳湁涓涓緢鐗瑰埆鐨勫師鍥犲幓浣跨敤 NULL 鍊鹼紝浣犲簲璇ユ繪槸璁╀綘鐨勫瓧孌典繚鎸?NOT NULL銆傝繖鐪嬭搗鏉ュソ鍍忔湁鐐逛簤璁紝璇峰線涓嬬湅銆?/p>
棣栧厛錛岄棶闂綘鑷繁“Empty”鍜?#8220;NULL”鏈夊澶х殑鍖哄埆錛堝鏋滄槸INT錛岄偅灝辨槸0鍜孨ULL錛夛紵濡傛灉浣犺寰楀畠浠箣闂存病鏈変粈涔堝尯鍒紝閭d箞浣犲氨涓嶈浣跨敤NULL銆傦紙浣犵煡閬撳悧錛熷湪 Oracle 閲岋紝NULL 鍜?Empty 鐨勫瓧絎︿覆鏄竴鏍風殑錛?
涓嶈浠ヤ負 NULL 涓嶉渶瑕佺┖闂達紝鍏墮渶瑕侀澶栫殑絀洪棿錛屽茍涓旓紝鍦ㄤ綘榪涜姣旇緝鐨勬椂鍊欙紝浣犵殑紼嬪簭浼氭洿澶嶆潅銆?褰撶劧錛岃繖閲屽茍涓嶆槸璇翠綘灝變笉鑳戒嬌鐢∟ULL浜嗭紝鐜板疄鎯呭喌鏄緢澶嶆潅鐨勶紝渚濈劧浼氭湁浜涙儏鍐典笅錛屼綘闇瑕佷嬌鐢∟ULL鍊箋?/p>
涓嬮潰鎽樿嚜MySQL鑷繁鐨勬枃妗o細
“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”
12. Prepared Statements Prepared Statements寰堝儚瀛樺偍榪囩▼錛屾槸涓縐嶈繍琛屽湪鍚庡彴鐨凷QL璇彞闆嗗悎錛屾垜浠彲浠ヤ粠浣跨敤 prepared statements 鑾峰緱寰堝濂藉錛屾棤璁烘槸鎬ц兘闂榪樻槸瀹夊叏闂銆?/p>
Prepared Statements 鍙互媯鏌ヤ竴浜涗綘緇戝畾濂界殑鍙橀噺錛岃繖鏍峰彲浠ヤ繚鎶や綘鐨勭▼搴忎笉浼氬彈鍒?#8220;SQL娉ㄥ叆寮?#8221;鏀誨嚮銆傚綋鐒訛紝浣犱篃鍙互鎵嬪姩鍦版鏌ヤ綘鐨勮繖浜涘彉閲忥紝鐒惰岋紝鎵嬪姩鐨勬鏌ュ鏄撳嚭闂錛岃屼笖寰堢粡甯鎬細琚▼搴忓憳蹇樹簡銆傚綋鎴戜滑浣跨敤涓浜沠ramework鎴栨槸ORM鐨勬椂鍊欙紝榪欐牱鐨勯棶棰樹細濂戒竴浜涖?/p>
鍦ㄦц兘鏂歸潰錛屽綋涓涓浉鍚岀殑鏌ヨ琚嬌鐢ㄥ嬈$殑鏃跺欙紝榪欎細涓轟綘甯︽潵鍙鐨勬ц兘浼樺娍銆備綘鍙互緇欒繖浜汸repared Statements瀹氫箟涓浜涘弬鏁幫紝鑰孧ySQL鍙細瑙f瀽涓嬈°?/p>
铏界劧鏈鏂扮増鏈殑MySQL鍦ㄤ紶杈揚repared Statements鏄嬌鐢ㄤ簩榪涘埗褰㈠娍錛屾墍浠ヨ繖浼氫嬌寰楃綉緇滀紶杈撻潪甯告湁鏁堢巼銆?/p>
褰撶劧錛屼篃鏈変竴浜涙儏鍐典笅錛屾垜浠渶瑕侀伩鍏嶄嬌鐢≒repared Statements錛屽洜涓哄叾涓嶆敮鎸佹煡璇㈢紦瀛樸備絾鎹鐗堟湰5.1鍚庢敮鎸佷簡銆?/p>
鍦≒HP涓浣跨敤prepared statements錛屼綘鍙互鏌ョ湅鍏朵嬌鐢ㄦ墜鍐岋細mysqli 鎵╁睍 鎴栨槸浣跨敤鏁版嵁搴撴娊璞″眰錛屽錛?nbsp;PDO .
// 鍒涘緩 prepared statement if ($stmt = $mysqli -> prepare (" SELECT username FROM user WHERE state = ?")) { // 緇戝畾鍙傛暟 $stmt-> bind_param("s", $state); // 鎵ц $stmt-> execute (); // 緇戝畾緇撴灉 $stmt-> bind_result($username); // 縐誨姩娓告爣 $stmt-> fetch (); printf(" % s is from % s\n", $username, $state); $stmt -> close (); }
13. 鏃犵紦鍐茬殑鏌ヨ 姝e父鐨勬儏鍐典笅錛屽綋浣犲湪褰撲綘鍦ㄤ綘鐨勮剼鏈腑鎵ц涓涓猄QL璇彞鐨勬椂鍊欙紝浣犵殑紼嬪簭浼氬仠鍦ㄩ偅閲岀洿鍒版病榪欎釜SQL璇彞榪斿洖錛岀劧鍚庝綘鐨勭▼搴忓啀寰涓嬬戶緇墽琛屻備綘鍙互浣跨敤鏃犵紦鍐叉煡璇㈡潵鏀瑰彉榪欎釜琛屼負銆?/p>
鍏充簬榪欎釜浜嬫儏錛屽湪PHP鐨勬枃妗d腑鏈変竴涓潪甯鎬笉閿欑殑璇存槑錛?nbsp;mysql_unbuffered_query() 鍑芥暟錛?/p>
“mysql_unbuffered_query() sends the SQL query query to MySQL without automatically fetching and buffering the result rows as mysql_query() does. This saves a considerable amount of memory with SQL queries that produce large result sets, and you can start working on the result set immediately after the first row has been retrieved as you don’t have to wait until the complete SQL query has been performed.”
涓婇潰閭e彞璇濈炕璇戣繃鏉ユ槸璇達紝mysql_unbuffered_query() 鍙戦佷竴涓猄QL璇彞鍒癕ySQL鑰屽茍涓嶅儚mysql_query()涓鏍峰幓鑷姩fethch鍜岀紦瀛樼粨鏋溿傝繖浼氱浉褰撹妭綰﹀緢澶氬彲瑙傜殑鍐呭瓨錛屽挨鍏舵槸閭d簺浼氫駭鐢熷ぇ閲忕粨鏋滅殑鏌ヨ璇彞錛屽茍涓旓紝浣犱笉闇瑕佺瓑鍒版墍鏈夌殑緇撴灉閮借繑鍥烇紝鍙渶瑕佺涓琛屾暟鎹繑鍥炵殑鏃跺欙紝浣犲氨鍙互寮濮嬮┈涓婂紑濮嬪伐浣滀簬鏌ヨ緇撴灉浜嗐?/p>
鐒惰岋紝榪欎細鏈変竴浜涢檺鍒躲傚洜涓轟綘瑕佷箞鎶婃墍鏈夎閮借璧幫紝鎴栨槸浣犺鍦ㄨ繘琛屼笅涓嬈$殑鏌ヨ鍓嶈皟鐢?a target="_blank" style="color: #2970a6; text-decoration: none;">mysql_free_result() 娓呴櫎緇撴灉銆傝屼笖錛?nbsp;mysql_num_rows() 鎴?nbsp;mysql_data_seek() 灝嗘棤娉曚嬌鐢ㄣ傛墍浠ワ紝鏄惁浣跨敤鏃犵紦鍐茬殑鏌ヨ浣犻渶瑕佷粩緇嗚冭檻銆?/p>
14. 鎶奍P鍦板潃瀛樻垚 UNSIGNED INT 寰堝紼嬪簭鍛橀兘浼氬垱寤轟竴涓?VARCHAR(15) 瀛楁鏉ュ瓨鏀懼瓧絎︿覆褰㈠紡鐨処P鑰屼笉鏄暣褰㈢殑IP銆傚鏋滀綘鐢ㄦ暣褰㈡潵瀛樻斁錛屽彧闇瑕?涓瓧鑺傦紝騫朵笖浣犲彲浠ユ湁瀹氶暱鐨勫瓧孌點傝屼笖錛岃繖浼氫負浣犲甫鏉ユ煡璇笂鐨勪紭鍔匡紝灝ゅ叾鏄綋浣犻渶瑕佷嬌鐢ㄨ繖鏍風殑WHERE鏉′歡錛欼P between ip1 and ip2銆?/p>
鎴戜滑蹇呴渶瑕佷嬌鐢║NSIGNED INT錛屽洜涓?IP鍦板潃浼氫嬌鐢ㄦ暣涓?2浣嶇殑鏃犵鍙鋒暣褰€?/p>
鑰屼綘鐨勬煡璇紝浣犲彲浠ヤ嬌鐢?nbsp;INET_ATON() 鏉ユ妸涓涓瓧絎︿覆IP杞垚涓涓暣褰紝騫朵嬌鐢?nbsp;INET_NTOA() 鎶婁竴涓暣褰㈣漿鎴愪竴涓瓧絎︿覆IP銆傚湪PHP涓紝涔熸湁榪欐牱鐨勫嚱鏁?nbsp;ip2long() 鍜?nbsp;long2ip() 銆?br />
$r = " UPDATE users SET ip = INET_ATON( ' {$_SERVER[ ' REMOTE_ADDR ' ]} ' ) WHERE user_id = $ user_id ";
15. 鍥哄畾闀垮害鐨勮〃浼氭洿蹇?/h4> 濡傛灉琛ㄤ腑鐨勬墍鏈夊瓧孌甸兘鏄?#8220;鍥哄畾闀垮害”鐨勶紝鏁翠釜琛ㄤ細琚涓烘槸 “static” 鎴?“fixed-length” 銆?渚嬪錛岃〃涓病鏈夊涓嬬被鍨嬬殑瀛楁錛?VARCHAR錛孴EXT錛孊LOB銆傚彧瑕佷綘鍖呮嫭浜嗗叾涓竴涓繖浜涘瓧孌碉紝閭d箞榪欎釜琛ㄥ氨涓嶆槸“鍥哄畾闀垮害闈欐佽〃”浜嗭紝榪欐牱錛孧ySQL 寮曟搸浼氱敤鍙︿竴縐嶆柟娉曟潵澶勭悊銆?/p>
鍥哄畾闀垮害鐨勮〃浼氭彁楂樻ц兘錛屽洜涓篗ySQL鎼滃寰椾細鏇村揩涓浜涳紝鍥犱負榪欎簺鍥哄畾鐨勯暱搴︽槸寰堝鏄撹綆椾笅涓涓暟鎹殑鍋忕Щ閲忕殑錛屾墍浠ヨ鍙栫殑鑷劧涔熶細寰堝揩銆傝屽鏋滃瓧孌典笉鏄畾闀跨殑錛岄偅涔堬紝姣忎竴嬈¤鎵句笅涓鏉$殑璇濓紝闇瑕佺▼搴忔壘鍒頒富閿?/p>
騫朵笖錛屽浐瀹氶暱搴︾殑琛ㄤ篃鏇村鏄撹緙撳瓨鍜岄噸寤恒備笉榪囷紝鍞竴鐨勫壇浣滅敤鏄紝鍥哄畾闀垮害鐨勫瓧孌典細嫻垂涓浜涚┖闂達紝鍥犱負瀹氶暱鐨勫瓧孌墊棤璁轟綘鐢ㄤ笉鐢紝浠栭兘鏄鍒嗛厤閭d箞澶氱殑絀洪棿銆?/p>
浣跨敤“鍨傜洿鍒嗗壊”鎶鏈紙瑙佷笅涓鏉★級錛屼綘鍙互鍒嗗壊浣犵殑琛ㄦ垚涓轟袱涓竴涓槸瀹氶暱鐨勶紝涓涓垯鏄笉瀹氶暱鐨勩?/p>
16. 鍨傜洿鍒嗗壊 “鍨傜洿鍒嗗壊”鏄竴縐嶆妸鏁版嵁搴撲腑鐨勮〃鎸夊垪鍙樻垚鍑犲紶琛ㄧ殑鏂規硶錛岃繖鏍峰彲浠ラ檷浣庤〃鐨勫鏉傚害鍜屽瓧孌電殑鏁扮洰錛屼粠鑰岃揪鍒頒紭鍖栫殑鐩殑銆傦紙浠ュ墠錛屽湪閾惰鍋氳繃欏圭洰錛岃榪囦竴寮犺〃鏈?00澶氫釜瀛楁錛屽緢鎭愭栵級
紺轟緥涓 錛氬湪Users琛ㄤ腑鏈変竴涓瓧孌墊槸瀹跺涵鍦板潃錛岃繖涓瓧孌墊槸鍙夊瓧孌碉紝鐩告瘮璧鳳紝鑰屼笖浣犲湪鏁版嵁搴撴搷浣滅殑鏃跺欓櫎浜嗕釜浜轟俊鎭錛屼綘騫朵笉闇瑕佺粡甯歌鍙栨垨鏄敼鍐欒繖涓瓧孌點傞偅涔堬紝涓轟粈涔堜笉鎶婁粬鏀懼埌鍙﹀涓寮犺〃涓憿錛?榪欐牱浼氳浣犵殑琛ㄦ湁鏇村ソ鐨勬ц兘錛屽ぇ瀹舵兂鎯蟲槸涓嶆槸錛屽ぇ閲忕殑鏃跺欙紝鎴戝浜庣敤鎴瘋〃鏉ヨ錛屽彧鏈夌敤鎴稩D錛岀敤鎴峰悕錛屽彛浠わ紝鐢ㄦ埛瑙掕壊絳変細琚粡甯鎬嬌鐢ㄣ傚皬涓鐐圭殑琛ㄦ繪槸浼氭湁濂界殑鎬ц兘銆?/p>
紺轟緥浜?/strong>錛?浣犳湁涓涓彨 “last_login” 鐨勫瓧孌碉紝瀹冧細鍦ㄦ瘡嬈$敤鎴風櫥褰曟椂琚洿鏂般備絾鏄紝姣忔鏇存柊鏃朵細瀵艱嚧璇ヨ〃鐨勬煡璇㈢紦瀛樿娓呯┖銆傛墍浠ワ紝浣犲彲浠ユ妸榪欎釜瀛楁鏀懼埌鍙︿竴涓〃涓紝榪欐牱灝變笉浼氬獎鍝嶄綘瀵圭敤鎴稩D錛岀敤鎴峰悕錛岀敤鎴瘋鑹茬殑涓嶅仠鍦拌鍙栦簡錛屽洜涓烘煡璇㈢紦瀛樹細甯綘澧炲姞寰堝鎬ц兘銆?/p>鍙﹀錛屼綘闇瑕佹敞鎰忕殑鏄紝榪欎簺琚垎鍑哄幓鐨勫瓧孌墊墍褰㈡垚鐨勮〃錛屼綘涓嶄細緇忓父鎬у湴鍘籎oin浠栦滑錛屼笉鐒剁殑璇濓紝榪欐牱鐨勬ц兘浼氭瘮涓嶅垎鍓叉椂榪樿宸紝鑰屼笖錛屼細鏄瀬鏁扮駭鐨勪笅闄嶃?/p>
17. 鎷嗗垎澶х殑 DELETE 鎴?INSERT 璇彞 濡傛灉浣犻渶瑕佸湪涓涓湪綰跨殑緗戠珯涓婂幓鎵ц涓涓ぇ鐨?DELETE 鎴?INSERT 鏌ヨ錛屼綘闇瑕侀潪甯稿皬蹇冿紝瑕侀伩鍏嶄綘鐨勬搷浣滆浣犵殑鏁翠釜緗戠珯鍋滄鐩稿簲銆傚洜涓鴻繖涓や釜鎿嶄綔鏄細閿佽〃鐨勶紝琛ㄤ竴閿佷綇浜嗭紝鍒殑鎿嶄綔閮借繘涓嶆潵浜嗐?/p>
Apache 浼氭湁寰堝鐨勫瓙榪涚▼鎴栫嚎紼嬨傛墍浠ワ紝鍏跺伐浣滆搗鏉ョ浉褰撴湁鏁堢巼錛岃屾垜浠殑鏈嶅姟鍣ㄤ篃涓嶅笇鏈涙湁澶鐨勫瓙榪涚▼錛岀嚎紼嬪拰鏁版嵁搴撻摼鎺ワ紝榪欐槸鏋佸ぇ鐨勫崰鏈嶅姟鍣ㄨ祫婧愮殑浜嬫儏錛屽挨鍏舵槸鍐呭瓨銆?/p>
濡傛灉浣犳妸浣犵殑琛ㄩ攣涓婁竴孌墊椂闂達紝姣斿30縐掗挓錛岄偅涔堝浜庝竴涓湁寰堥珮璁塊棶閲忕殑绔欑偣鏉ヨ錛岃繖30縐掓墍縐瘡鐨勮闂繘紼?綰跨▼錛屾暟鎹簱閾炬帴錛屾墦寮鐨勬枃浠舵暟錛屽彲鑳戒笉浠呬粎浼氳浣犳硦WEB鏈嶅姟Crash錛岃繕鍙兘浼氳浣犵殑鏁村彴鏈嶅姟鍣ㄩ┈涓婃帥浜嗐?/p>
鎵浠ワ紝濡傛灉浣犳湁涓涓ぇ鐨勫鐞嗭紝浣犲畾浣犱竴瀹氭妸鍏舵媶鍒嗭紝浣跨敤 LIMIT 鏉′歡鏄竴涓ソ鐨勬柟娉曘備笅闈㈡槸涓涓ず渚嬶細
while ( 1 ) { // 姣忔鍙仛1000鏉?/span> mysql_query("DELETE FROM logs WHERE log_date <= ' 2009-11-01 ' LIMIT 1000 "); if (mysql_affected_rows() == 0 ) { // 娌″緱鍙垹浜嗭紝閫鍑猴紒 break ; } // 姣忔閮借浼戞伅涓浼氬効 usleep(50000 ); }
18. 瓚婂皬鐨勫垪浼氳秺蹇?/h4> 瀵逛簬澶у鏁扮殑鏁版嵁搴撳紩鎿庢潵璇達紝紜洏鎿嶄綔鍙兘鏄渶閲嶅ぇ鐨勭摱棰堛傛墍浠ワ紝鎶婁綘鐨勬暟鎹彉寰楃揣鍑戜細瀵硅繖縐嶆儏鍐甸潪甯告湁甯姪錛屽洜涓鴻繖鍑忓皯浜嗗紜洏鐨勮闂?/p>
鍙傜湅 MySQL 鐨勬枃妗?nbsp;Storage Requirements 鏌ョ湅鎵鏈夌殑鏁版嵁綾誨瀷銆?/p>
濡傛灉涓涓〃鍙細鏈夊嚑鍒楃艦浜嗭紙姣斿璇村瓧鍏歌〃錛岄厤緗〃錛夛紝閭d箞錛屾垜浠氨娌℃湁鐞嗙敱浣跨敤 INT 鏉ュ仛涓婚敭錛屼嬌鐢?MEDIUMINT, SMALLINT 鎴栨槸鏇村皬鐨?TINYINT 浼氭洿緇忔祹涓浜涖傚鏋滀綘涓嶉渶瑕佽褰曟椂闂達紝浣跨敤 DATE 瑕佹瘮 DATETIME 濂藉緱澶氥?/p>
褰撶劧錛屼綘涔熼渶瑕佺暀澶熻凍澶熺殑鎵╁睍絀洪棿錛屼笉鐒訛紝浣犳棩鍚庢潵騫茶繖涓簨錛屼綘浼氭鐨勫緢闅劇湅錛屽弬鐪?a target="_blank" style="color: #2970a6; text-decoration: none;">Slashdot鐨勪緥瀛?/a>錛?009騫?1鏈?6鏃ワ級錛屼竴涓畝鍗曠殑ALTER TABLE璇彞鑺變簡3涓灝忔椂錛屽洜涓洪噷闈㈡湁涓鍗冨叚鐧句竾鏉℃暟鎹?/p>
19. 閫夋嫨姝g‘鐨勫瓨鍌ㄥ紩鎿?/h4> 鍦?MySQL 涓湁涓や釜瀛樺偍寮曟搸 MyISAM 鍜?InnoDB錛屾瘡涓紩鎿庨兘鏈夊埄鏈夊紛銆傞叿澹充互鍓嶆枃绔犮?a target="_blank" style="color: #2970a6; text-decoration: none;">MySQL: InnoDB 榪樻槸 MyISAM?銆嬭璁哄拰榪欎釜浜嬫儏銆?/p>
MyISAM 閫傚悎浜庝竴浜涢渶瑕佸ぇ閲忔煡璇㈢殑搴旂敤錛屼絾鍏跺浜庢湁澶ч噺鍐欐搷浣滃茍涓嶆槸寰堝ソ銆傜敋鑷充綘鍙槸闇瑕乽pdate涓涓瓧孌碉紝鏁翠釜琛ㄩ兘浼氳閿佽搗鏉ワ紝鑰屽埆鐨勮繘紼嬶紝灝辯畻鏄榪涚▼閮芥棤娉曟搷浣滅洿鍒拌鎿嶄綔瀹屾垚銆傚彟澶栵紝MyISAM 瀵逛簬 SELECT COUNT(*) 榪欑被鐨勮綆楁槸瓚呭揩鏃犳瘮鐨勩?/p>
InnoDB 鐨勮秼鍔夸細鏄竴涓潪甯稿鏉傜殑瀛樺偍寮曟搸錛屽浜庝竴浜涘皬鐨勫簲鐢紝瀹冧細姣?MyISAM 榪樻參銆備粬鏄畠鏀寔“琛岄攣” 錛屼簬鏄湪鍐欐搷浣滄瘮杈冨鐨勬椂鍊欙紝浼氭洿浼樼銆傚茍涓旓紝浠栬繕鏀寔鏇村鐨勯珮綰у簲鐢紝姣斿錛氫簨鍔°?/p>
涓嬮潰鏄疢ySQL鐨勬墜鍐?/p>
20. 浣跨敤涓涓璞″叧緋繪槧灝勫櫒錛圤bject Relational Mapper錛?/h4> 浣跨敤 ORM (Object Relational Mapper)錛屼綘鑳藉鑾峰緱鍙潬鐨勬ц兘澧炴定銆備竴涓狾RM鍙互鍋氱殑鎵鏈変簨鎯咃紝涔熻兘琚墜鍔ㄧ殑緙栧啓鍑烘潵銆備絾鏄紝榪欓渶瑕佷竴涓珮綰т笓瀹躲?/p>
ORM 鐨勬渶閲嶈鐨勬槸“Lazy Loading”錛屼篃灝辨槸璇達紝鍙湁鍦ㄩ渶瑕佺殑鍘誨彇鍊肩殑鏃跺欐墠浼氬幓鐪熸鐨勫幓鍋氥備絾浣犱篃闇瑕佸皬蹇冭繖縐嶆満鍒剁殑鍓綔鐢紝鍥犱負榪欏緢鏈夊彲鑳戒細鍥犱負瑕佸幓鍒涘緩寰堝寰堝灝忕殑鏌ヨ鍙嶈屼細闄嶄綆鎬ц兘銆?/p>
ORM 榪樺彲浠ユ妸浣犵殑SQL璇彞鎵撳寘鎴愪竴涓簨鍔★紝榪欎細姣斿崟鐙墽琛屼粬浠揩寰楀寰楀銆?/p>
鐩墠錛屼釜浜烘渶鍠滄鐨凱HP鐨凮RM鏄細Doctrine 銆?/p>
21. 灝忓績“姘鎬箙閾炬帴” “姘鎬箙閾炬帴”鐨勭洰鐨勬槸鐢ㄦ潵鍑忓皯閲嶆柊鍒涘緩MySQL閾炬帴鐨勬鏁般傚綋涓涓摼鎺ヨ鍒涘緩浜嗭紝瀹冧細姘歌繙澶勫湪榪炴帴鐨勭姸鎬侊紝灝辯畻鏄暟鎹簱鎿嶄綔宸茬粡緇撴潫浜嗐傝屼笖錛岃嚜浠庢垜浠殑Apache寮濮嬮噸鐢ㄥ畠鐨勫瓙榪涚▼鍚?#8212;—涔熷氨鏄錛屼笅涓嬈$殑HTTP璇鋒眰浼氶噸鐢ˋpache鐨勫瓙榪涚▼錛屽茍閲嶇敤鐩稿悓鐨?MySQL 閾炬帴銆?/p>
鍦ㄧ悊璁轟笂鏉ヨ錛岃繖鍚搗鏉ラ潪甯哥殑涓嶉敊銆備絾鏄粠涓漢緇忛獙錛堜篃鏄ぇ澶氭暟浜虹殑錛変笂鏉ヨ錛岃繖涓姛鑳藉埗閫犲嚭鏉ョ殑楹葷儲浜嬫洿澶氥傚洜涓猴紝浣犲彧鏈夋湁闄愮殑閾炬帴鏁幫紝鍐呭瓨闂錛屾枃浠跺彞鏌勬暟錛岀瓑絳夈?/p>
鑰屼笖錛孉pache 榪愯鍦ㄦ瀬绔茍琛岀殑鐜涓紝浼氬垱寤哄緢澶氬緢澶氱殑浜嗚繘紼嬨傝繖灝辨槸涓轟粈涔堣繖縐?#8220;姘鎬箙閾炬帴”鐨勬満鍒跺伐浣滃湴涓嶅ソ鐨勫師鍥犮傚湪浣犲喅瀹氳浣跨敤“姘鎬箙閾炬帴”涔嬪墠錛屼綘闇瑕佸ソ濂藉湴鑰冭檻涓涓嬩綘鐨勬暣涓郴緇熺殑鏋舵瀯銆?/p>
鏂囩珷錛?a target="_blank" style="color: #2970a6; text-decoration: none;">鏉ユ簮
錛堝叏鏂囧畬錛?br /> 鏈枃杞嚜錛?a style="font-family: verdana, 'courier new'; line-height: 21px;">http://coolshell.cn/articles/1846.html
]]>C++ ADO 榪炴帴 mysql http://www.shnenglu.com/wanghaiguang/archive/2013/03/07/198266.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Thu, 07 Mar 2013 07:30:00 GMT http://www.shnenglu.com/wanghaiguang/archive/2013/03/07/198266.html http://www.shnenglu.com/wanghaiguang/comments/198266.html http://www.shnenglu.com/wanghaiguang/archive/2013/03/07/198266.html#Feedback 0 http://www.shnenglu.com/wanghaiguang/comments/commentRss/198266.html http://www.shnenglu.com/wanghaiguang/services/trackbacks/198266.html 1銆佸畨瑁?/span>mysql-5.0.22-win32 錛?/span>mysql-connector-odbc-5.1.12-win32.msi 鐒跺悗錛氬紑濮嬭彍鍗曪紞>璁劇疆錛?gt;鎺у埗闈㈡澘錛?gt;綆$悊宸ュ叿錛?gt;鏁版嵁婧?ODBC)錛?gt;緋葷粺DSN錛?gt;娣誨姞錛?gt;閫夋嫨 MySQL ODBC 5.1 Driver 2銆侀鍏堝鍏DO綾誨瀷搴擄紝 鎮ㄧ殑鐜涓璵sado15.dll涓嶄竴瀹氬湪榪欎釜鐩綍涓嬶紝璇鋒寜瀹為檯鎯呭喌淇敼銆傛垨鑰呮妸msado15.dll榪欎釜鏂囦歡鎷瘋礉鍒頒綘鐨勫伐紼嬬洰褰曚笅錛岀洿鎺?import "msado15.dll" \ no_namespace \rename ("EOF", "adoEOF")鍖呭惈榪涙潵銆?/span>鍦╯tdafx.h鍔犲叆濡備笅浠g爜錛?/span>#include <afxdb.h> // MFC Automation classes #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
3銆佷唬鐮佺ず渚嬶細 .h鏂囦歡錛?br />/* *********************************************************************** *Copyright: *FileName:ADOConn.h * *Author:wanghaiguang *Date:2013-03-07 *Description:ADO Operate MySql DataBase *********************************************************************** */ #pragma onceclass CADOConn {public : CADOConn(void ); ~CADOConn(void );public : // 娣誨姞涓涓寚鍚慍onnection瀵硅薄鐨勬寚閽? _ConnectionPtr m_pConnection; // 娣誨姞涓涓寚鍚慠ecordset瀵硅薄鐨勬寚閽? _RecordsetPtr m_pRecordset; // 瀹氫箟鏂規硶 public : // 鍒濆鍖?#8212;榪炴帴鏁版嵁搴?/span> void OnInitADOConn(); // 鎵ц鏌ヨ _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL); // 鎵цSQL璇彞錛孖nsert Update _variant_t BOOL ExecuteSQL(_bstr_t bstrSQL); void ExitConnect(); };
.cpp鏂囦歡錛?br />#include "StdAfx.h" #include "ADOConn.h" CADOConn::CADOConn(void ) { } CADOConn::~CADOConn(void ) { }/* *********************************************************************** *Function : OnInitADOConn *Description: Init DataBase Connect *param : bconString[in] () *return : void *********************************************************************** */ void CADOConn::OnInitADOConn() { // 鍒濆鍖朞LE/COM搴撶幆澧?nbsp; ::CoInitialize(NULL); HRESULT hr; try { // 鍒涘緩Connection瀵硅薄,鍙互閫氳繃閰嶇疆鏂囦歡鑾峰彇榪炴帴淇℃伅 hr = m_pConnection.CreateInstance("ADODB.Connection"); if (SUCCEEDED(hr)) { m_pConnection->ConnectionTimeout=600;// 璁劇疆榪炴帴瓚呮椂鏃墮棿 m_pConnection->CommandTimeout=120;// 璁劇疆鎵ц鍛戒護瓚呮椂鏃墮棿 m_pConnection->Open("DSN=MySqlTest;Server= localhost;Database=school","root","sa",adModeUnknown); } } // 鎹曟崏寮傚父 catch (_com_error e) { // 鏄劇ず閿欒淇℃伅 AfxMessageBox(e.Description()); } }/* *********************************************************************** *Function : GetRecordSet *Description: Select Data *param : bstrSQL[in] SQL *return : _RecordsetPtr *********************************************************************** */ _RecordsetPtr& CADOConn::GetRecordSet(_bstr_t bstrSQL) { try { // 榪炴帴鏁版嵁搴擄紝濡傛灉Connection瀵硅薄涓虹┖錛屽垯閲嶆柊榪炴帴鏁版嵁搴?/span> if (m_pConnection==NULL) OnInitADOConn(); // 鍒涘緩璁板綍闆嗗璞?/span> m_pRecordset.CreateInstance(__uuidof(Recordset)); // 鍙栧緱琛ㄤ腑鐨勮褰?/span> m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); } // 鎹曟崏寮傚父 catch (_com_error e) { // 鏄劇ず閿欒淇℃伅 AfxMessageBox(e.Description()); } // 榪斿洖璁板綍闆?/span> return m_pRecordset; }/* *********************************************************************** *Function : ExecuteSQL *Description: Exec SQL For Insert Update _variant_t *param : bstrSQL[in] SQL *return : BOOL *********************************************************************** */ BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL) { // _variant_t RecordsAffected; try { // 鏄惁宸茬粡榪炴帴鏁版嵁搴?/span> if (m_pConnection == NULL) OnInitADOConn(); // Connection瀵硅薄鐨凟xecute鏂規硶:(_bstr_t CommandText, // VARIANT * RecordsAffected, long Options ) // 鍏朵腑CommandText鏄懡浠ゅ瓧涓詫紝閫氬父鏄疭QL鍛戒護銆?br /> // 鍙傛暟RecordsAffected鏄搷浣滃畬鎴愬悗鎵褰卞搷鐨勮鏁? // 鍙傛暟Options琛ㄧずCommandText鐨勭被鍨嬶細adCmdText-鏂囨湰鍛戒護錛沘dCmdTable-琛ㄥ悕 // adCmdProc-瀛樺偍榪囩▼錛沘dCmdUnknown-鏈煡 m_pConnection->Execute(bstrSQL,NULL,adCmdText); return true ; } catch (_com_error e) { AfxMessageBox(e.Description()); return false ; } }/* *********************************************************************** *Function : ExitConnect *Description: Exit Connect DataBase *param : *return : void *********************************************************************** */ void CADOConn::ExitConnect() { // 鍏抽棴璁板綍闆嗗拰榪炴帴 if (m_pRecordset != NULL) { m_pRecordset->Close(); // m_pRecordset->Release(); } m_pConnection->Close(); // m_pConnection->Release(); // 閲婃斁鐜 ::CoUninitialize(); }
鍏朵粬榪炴帴鏁版嵁搴擄細BOOL ConnectMySqlFun1() { CoInitialize(NULL); // 鍒濆鍖朇om緇勪歡 conPtr.CreateInstance(__uuidof(Connection)); // Connection鐢ㄤ簬涓庢暟鎹簱鏈嶅姟鍣ㄧ殑閾炬帴鍙︿竴縐嶆柟寮?/span> /* *****************榪炴帴鏁版嵁搴?****************** */ try { // MySqlTest涓烘暟鎹簮鍚?nbsp;localhost琛ㄧず鏈湴 root琛ㄧず鐢ㄦ埛鍚?nbsp;sa琛ㄧず瀵嗙爜 conPtr->Open("DSN=MySqlTest;server=localhost;database=school;","root","sa",adModeUnknown);/// 榪炴帴MySql鏁版嵁搴?嫻嬭瘯鎴愬姛) } catch (_com_error e) // 鎹曟崏寮傚父 { printf("Connect Error : %s", e.Description()); return FALSE; } return TRUE; } BOOL ConnectMySqlFun2() { CoInitialize(NULL); // 鍒濆鍖朇om緇勪歡 try { // 鍒涘緩榪炴帴瀵硅薄瀹炰緥 conPtr.CreateInstance("ADODB.Connection"); // 璁劇疆榪炴帴瀛楃涓?br /> // mdb------------------------------------------------ CString strConnect="DSN=MySqlTest"; // 浣跨敤Open鏂規硶榪炴帴鏁版嵁搴?/span> conPtr->Open((_bstr_t)strConnect,"root","sa",adModeUnknown); } catch (_com_error e) { printf("Connect Error : %s", e.Description()); return FALSE; } return TRUE; }
鎿嶄綔MySql鏁版嵁搴? CADOConn m_ADO; m_ADO.OnInitADOConn(); // 璁劇疆SELECT璇彞 _bstr_t vSQL, vInserSQL; vSQL = "select name from teacher"; // 璁劇疆INSERT璇彞 vInserSQL = "insert into teacher values(27, 'hai', '鍝堝皵婊ㄥ叚涓?, '1998-05-05')"; /// 鎵цINSERT璇彞 if (m_ADO.ExecuteSQL(vInserSQL)) { printf("Insert Data Successful!!!"); } // 鎵цSELETE璇彞 _RecordsetPtr m_pRecordset; m_pRecordset = m_ADO.GetRecordSet(vSQL); CString name0; // 榪斿洖鍚勫垪鐨勫?/span> while (!m_pRecordset->adoEOF) { name0 = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("name"); // CString name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal; // int no=recordPtr->GetCollect(_variant_t("stuno")).intVal; printf("name : %s\n", name0); m_pRecordset->MoveNext(); } // 鏂紑涓庢暟鎹簱鐨勮繛鎺?/span> m_ADO.ExitConnect();
鍙傝冮摼鎺ワ細http://www.shnenglu.com/current/archive/2009/07/24/91069.html ]]> db絎旇鏈?/title> http://www.shnenglu.com/wanghaiguang/archive/2013/02/27/198118.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Wed, 27 Feb 2013 08:13:00 GMT http://www.shnenglu.com/wanghaiguang/archive/2013/02/27/198118.html http://www.shnenglu.com/wanghaiguang/comments/198118.html http://www.shnenglu.com/wanghaiguang/archive/2013/02/27/198118.html#Feedback 0 http://www.shnenglu.com/wanghaiguang/comments/commentRss/198118.html http://www.shnenglu.com/wanghaiguang/services/trackbacks/198118.html
鏈枃杞嚜錛?/span> http://www.cnblogs.com/ggjucheng/archive/2012/11/02/2751119.html ]]> 錛堣漿杞斤級MySQL绱㈠紩鑳屽悗鐨勬暟鎹粨鏋勫強綆楁硶鍘熺悊 http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197077.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Mon, 07 Jan 2013 08:43:00 GMT http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197077.html http://www.shnenglu.com/wanghaiguang/comments/197077.html http://www.shnenglu.com/wanghaiguang/archive/2013/01/07/197077.html#Feedback 0 http://www.shnenglu.com/wanghaiguang/comments/commentRss/197077.html http://www.shnenglu.com/wanghaiguang/services/trackbacks/197077.html 闃呰鍏ㄦ枃 ]]> MongoDB瀹炴垬寮鍙?/title> http://www.shnenglu.com/wanghaiguang/archive/2012/04/13/171223.html鐜嬫搗鍏?/dc:creator>鐜嬫搗鍏?/author>Fri, 13 Apr 2012 04:35:00 GMT http://www.shnenglu.com/wanghaiguang/archive/2012/04/13/171223.html http://www.shnenglu.com/wanghaiguang/comments/171223.html http://www.shnenglu.com/wanghaiguang/archive/2012/04/13/171223.html#Feedback 0 http://www.shnenglu.com/wanghaiguang/comments/commentRss/171223.html http://www.shnenglu.com/wanghaiguang/services/trackbacks/171223.html 鐩稿叧鏂囩珷閾炬帴錛?br /> http://special.csdn.net/mongodb/ http://www.cnblogs.com/fish-li/archive/2011/06/26/2090800.html#_labelStart Hadoop
涓涓?a target="_blank">鍒嗗竷寮忕郴緇?/a>鍩虹鏋舵瀯錛岀敱Apache鍩洪噾浼氬紑鍙戙傜敤鎴峰彲浠ュ湪涓嶄簡瑙e垎甯冨紡搴曞眰緇嗚妭鐨勬儏鍐典笅錛屽紑鍙戝垎甯冨紡紼嬪簭銆傚厖鍒嗗埄鐢ㄩ泦緹ょ殑濞佸姏楂橀熻繍綆楀拰瀛樺偍銆侶adoop瀹炵幇浜嗕竴涓?a target="_blank">鍒嗗竷寮忔枃浠剁郴緇?/a>錛圚adoop Distributed File System錛夛紝綆縐癏DFS銆侶DFS鏈夌潃楂樺閿欐х殑鐗圭偣錛屽茍涓旇璁$敤鏉ラ儴緗插湪浣庡粔鐨勶紙low-cost錛夌‖浠朵笂銆傝屼笖瀹冩彁渚涢珮浼犺緭鐜囷紙high throughput錛夋潵璁塊棶搴旂敤紼嬪簭 鐨勬暟鎹紝閫傚悎閭d簺鏈夌潃瓚呭ぇ鏁版嵁闆嗭紙large data set錛夌殑搴旂敤紼嬪簭銆侶DFS鏀懼浜嗭紙relax錛塒OSIX鐨勮姹傦紙requirements錛夎繖鏍峰彲浠ユ祦鐨勫艦寮忚闂紙streaming access錛夋枃浠剁郴緇熶腑鐨勬暟鎹?/p>joomla 錛圕ontent Management System, CMS錛夛紝瀹冨睘浜嶱ortal錛堜紒涓氬叆鍙g綉绔欙級綾誨瀷錛岄【鍚嶆濅箟錛屽氨鏄瘮杈冮傚悎浣滀負鍟嗕笟綾誨瀷鐨勭綉绔欑▼搴忋備竴鑸漢瀵硅繖綾誨瀷鐨?a target="_blank">鍐呭綆$悊緋葷粺鍙兘浼氭湁浠ヤ笅鐨勫埆鍚嶆潵縐板懠錛?
銆銆■ 鏋剁珯紼嬪簭錛堟垨杞歡 錛?
銆銆■ 蹇熸灦绔欑▼搴忥紙鎴栬蔣浠訛級
銆銆■ 鏁寸珯紼嬪簭 ]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
国产日韩欧美视频 |
欧美岛国激情 |
精品动漫一区 |
怡红院精品视频 |
91久久精品国产 |
亚洲六月丁香色婷婷综合久久 |
亚洲国产午夜 |
亚洲一区二区少妇 |
久久久久国产一区二区三区四区 |
久久国产精品久久久 |
美女免费视频一区 |
亚洲高清精品中出 |
欧美大秀在线观看 |
亚洲一区在线免费观看 |
久久亚洲综合色 |
亚洲高清激情 |
99在线观看免费视频精品观看 |
亚洲在线黄色 |
欧美高清视频 |
国产在线视频欧美 |
在线中文字幕一区 |
欧美成人中文 |
羞羞答答国产精品www一本 |
欧美成人免费在线观看 |
国产区亚洲区欧美区 |
亚洲精品免费在线 |
久久蜜臀精品av |
亚洲视频一区二区免费在线观看 |
久久久久久久久久久久久9999
|
在线午夜精品自拍 |
午夜精品久久久久久久久久久
|
加勒比av一区二区 |
亚洲欧美日韩成人高清在线一区 |
蜜臀va亚洲va欧美va天堂 |
一区二区三区免费看 |
免费中文日韩 |
在线看一区二区 |
欧美一区二区三区免费在线看 |
亚洲区第一页 |
久久综合999 |
国产综合久久久久久鬼色 |
亚洲欧美在线网 |
亚洲另类自拍 |
欧美日韩国产一区二区三区地区 |
亚洲国产毛片完整版
|
91久久国产自产拍夜夜嗨 |
久久高清国产 |
国产视频欧美 |
欧美在线视频一区 |
亚洲午夜精品久久 |
欧美视频中文一区二区三区在线观看
|
久久午夜精品一区二区 |
亚洲高清在线播放 |
久久香蕉国产线看观看av |
国产精品久久久久影院色老大
|
久久久久国产成人精品亚洲午夜 |
亚洲性夜色噜噜噜7777 |
国产精品久久久久免费a∨大胸 |
一区二区动漫 |
亚洲一区二区三区涩 |
国产精品久久久久久久一区探花 |
99伊人成综合 |
一区二区三区四区国产精品 |
国产精品对白刺激久久久 |
欧美午夜视频在线观看 |
9国产精品视频 |
99综合电影在线视频 |
午夜视频久久久 |
国产精品主播 |
久久久综合精品 |
久久精品国产久精国产思思 |
国产字幕视频一区二区 |
免费成人高清在线视频 |
你懂的国产精品永久在线 |
99国产精品久久久久久久成人热 |
亚洲人成网站777色婷婷 |
欧美精品性视频 |
亚洲在线电影 |
久久精品一二三 |
亚洲精品欧美激情 |
99www免费人成精品 |
国产日韩av一区二区 |
麻豆精品视频在线观看视频 |
欧美风情在线 |
欧美一区91 |
久久午夜精品一区二区 |
一区二区三区久久网 |
亚洲一区二区三区乱码aⅴ |
红杏aⅴ成人免费视频 |
亚洲日本va午夜在线影院 |
国产农村妇女精品一区二区 |
欧美91大片 |
国产精品日日做人人爱 |
欧美大片第1页 |
国产精品网站在线观看 |
欧美黄色日本 |
国产婷婷精品 |
亚洲美女av网站 |
一区二区三区在线免费观看 |
日韩视频一区二区三区 |
国内一区二区在线视频观看 |
亚洲免费av观看 |
黄色成人在线 |
亚洲一区二区动漫 |
亚洲精选一区 |
久久久久九九视频 |
西西人体一区二区 |
欧美精品尤物在线 |
免费视频一区 |
国产区精品视频 |
中文亚洲免费 |
一本大道久久精品懂色aⅴ |
久久久久天天天天 |
久久精品色图 |
国产精品视频免费一区 |
亚洲精品欧洲 |
亚洲日本成人 |
久久综合狠狠综合久久综青草 |
亚洲一区精品在线 |
欧美日韩日日骚 |
亚洲精品美女在线 |
亚洲黄色在线 |
久久综合伊人77777麻豆 |
久久久久久自在自线 |
国产婷婷色一区二区三区四区 |
一本久道久久久 |
亚洲视频免费 |
一区二区欧美精品 |
亚洲精品在线视频观看 |
欧美成年视频 |
亚洲人成在线播放 |
亚洲免费av电影 |
欧美精品一卡二卡 |
亚洲国产高清一区 |
亚洲精品乱码久久久久久久久 |
久久亚洲综合色 |
欧美激情欧美激情在线五月 |
亚洲欧洲精品一区二区三区不卡 |
裸体一区二区 |
亚洲欧洲中文日韩久久av乱码 |
亚洲国产专区 |
欧美日韩二区三区 |
国产精品99久久久久久www |
午夜精品一区二区在线观看 |
国产精一区二区三区 |
久久久久久夜 |
亚洲日本一区二区 |
亚洲一区欧美激情 |
国产午夜亚洲精品羞羞网站 |
久久精品一区二区三区四区
|
日韩天天综合 |
亚洲欧美日韩高清 |
国产午夜精品一区理论片飘花
|
亚洲尤物精选 |
久久久久国产精品厨房 |
亚洲国产精品久久久久久女王 |
欧美精品一区二区久久婷婷 |
亚洲私人影吧 |
老司机免费视频一区二区 |
亚洲欧洲精品一区二区三区 |
欧美午夜电影网 |
欧美在线视频免费 |
91久久久亚洲精品 |
亚洲曰本av电影 |
亚洲国产成人午夜在线一区 |
欧美日韩精品一本二本三本 |
小处雏高清一区二区三区
|
久久婷婷麻豆 |
日韩一级欧洲 |
国产午夜精品一区理论片飘花
|
在线观看国产一区二区 |
欧美日本在线一区 |
欧美一区二区视频在线观看2020 |
欧美激情精品久久久 |
亚洲欧美激情诱惑 |
亚洲黄色成人久久久 |
国产精品夜夜夜 |
欧美国产日韩亚洲一区 |
欧美一区二区视频免费观看 |
日韩一级欧洲 |
欧美成人一区二区三区片免费 |
午夜视频在线观看一区二区 |
在线观看精品 |
国产亚洲综合精品 |
欧美视频在线观看 |
欧美成人激情视频 |
久久久精品国产免费观看同学
|
亚洲欧美视频一区 |
亚洲激情小视频 |
国产欧美在线看 |
夜色激情一区二区 |
在线精品福利 |
国产欧美日韩精品一区 |
欧美精品18 |
免费中文日韩 |
久久精品视频在线观看 |
亚洲欧美日韩综合aⅴ视频 |
亚洲视频在线观看 |
亚洲精品美女91 |
亚洲二区免费 |