成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查

瀏覽:1022日期:2023-11-30 19:20:36

; 6.3 客戶機程序2—增加錯誤檢查 ; 我們的第二個客戶機程序將像第一個客戶機程序一樣,但是將修改它們,考慮錯誤出現的可能性?!皩㈠e誤檢查作為讀者的練習”這樣的項目在編程文獻中相當常見,這或許是因為檢查錯誤相當令人討厭。但是,我贊同這種觀點,即MySQL客戶機程序應該測試錯誤條件并適當地進行回應。由于某種原因,返回狀態值的客戶機庫的調用做這些事情,而且您要承擔忽略它們的后果。您最終還是要試圖捕獲由于沒有錯誤檢查而出現在程序中的錯誤,這些程序的用戶會對程序運行如此不規律感到奇怪。考慮我們的程序,客戶機程序1。如何知道它是否真正連接到服務器上?可以通過查看服務器的日志,找出與運行程序時間相應的Connect和Quit事件:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 這條消息表示根本沒有創建連接。不幸的是,客戶機程序1沒有告訴我們出現的這些結果。實際上它不能。它不能實現任何錯誤檢查,所以它甚至不知道自己發生了什么事。無論如何,當然不一定必須查看日志來尋找是否能連接到服務器!讓我們立刻改正它。在MySQL客戶機庫中返回值的例程基本上以下列兩種方式之一表示成功或失?。?; ■ 成功時,值的指針函數返回一個非NULL 指針,失敗時返回NULL(在這里NULL 的意思是“C NULL 指針”,而不是“MySQLNULL 列值”)。迄今為止,我們使用的客戶機庫的例程mysql_init() 和mysql_real_connect() 都用返回連接處理程序的指針來表示成功, NULL 表示失敗。 ; ■ 整型數值的函數一般成功返回0,失敗返回非0。不要測試特定的非0值,如- 1。因為當失敗時,并不保證客戶機庫函數返回任何特定的值。有時,您可能會看到像如下的較舊的錯誤地測試返回值的代碼:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 這個測試可能工作,也可能不工作。MySQLAPI 不將任何非0錯誤的返回指定為特定的值,而只判斷它(顯然地)是否為0。這個測試應該寫成下面兩段之一:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 或如下所示:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 這兩個測試是等價的。如果審核MySQL的源代碼,則可以發現,它基本上用第一種形式測試,因為這編寫起來更簡短。 ; 不是每個API 調用都返回值。我們使用的另一個客戶機例程mysql_close() 就不返回值(它如何失???失敗了又如何?無論如何,都要進行連接)。 ; 當客戶機庫調用失敗,并且需要有關失敗的詳細信息時, API 中的兩個調用都是有用的。mysql_error() 返回包括錯誤信息的字符串,而mysql_errno() 返回數值代碼。應該在錯誤出現以后立刻調用它們,因為如果發布另一個返回狀態的API 調用,則從mysql_error() 或mysql_errno() 獲取的任何錯誤信息都將來自于后面的調用。 ; 一般來說,程序的用戶查看錯誤字符串比查看錯誤代碼更有啟發。如果只報告兩者中的一個,則建議報告字符串。出于全面考慮,本章的這個樣例報告兩個值??紤]前述的討論,我們將編寫第二個客戶機程序,即客戶機程序2。它類似于客戶機程序 ; 1,但是適當地增加了錯誤檢查代碼。源文件client2.c 如下所示:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 這個錯誤檢查的邏輯是,如果失敗,則mysql_init() 和mysql_real_connect() 都返回NULL。請注意,盡管這個程序檢查mysql_init() 返回的值,但是,如果它失敗,卻不調用錯誤報告函數。這是因為當mysql_init() 失敗時,不能假設連接處理程序包括任何有意義的信息。 ; 相反,如果mysql_real_connect() 失敗了,則連接處理程序并不反映有效的連接,但是的確包括傳送給錯誤報告函數的錯誤信息(不要將該處理程序傳送給任何其他的客戶機例程!因為它們一般假設是一個有效連接,所以您的程序可能崩潰)。編譯和連接客戶機程序2,然后試著運行它: ;% client2 ; 如果客戶機程序2沒有別輸出,則連接成功。另一方面,可能會如下所示:Mysql入門系列:MYSQL客戶機程序2—增加錯誤檢查 這個輸出表示沒有創建連接,并說明為什么?;蛘撸€表示我們的第一個程序,即客戶機程序1,沒有成功地連接到服務器(畢竟客戶機程序1使用同樣的連接參數)!而在那時我們不知道,因為客戶機程序1沒有錯誤檢查。而客戶機程序2做檢查,所以當出問題時,它可以告知我們。這就是應該始終測試API 函數返回值的原因。 ; MySQL郵件清單問題經常是與錯誤檢查有關的。典型的問題是“當發送這個查詢時,為什么我的程序崩潰了?”或“我的程序怎么沒有返回任何東西?”在許多情況下,在查詢發布以前,有疑問的程序不檢查在發布該查詢前是否成功地建立了連接,或者不檢查在試著檢索結果前確保服務器成功執行該查詢。不要假定每個客戶機庫都調用成功。 ; 本章下面的例子完成錯誤檢查,而且也應該這樣??雌饋硭孟裼懈嗟墓ぷ?,但是從長遠地運行來看,它的工作實際上是少的,因為您化費了更少的時間來捕獲錯綜復雜的問題。在第7章“Perl DBI API”和第8章“PHP API”中,也使用這種檢查錯誤的方法。 ; 現在,當運行客戶機2的程序時,假設看到拒絕訪問( Access denied)的消息。如何改正這個問題呢?一種可能是將主機名稱、用戶名稱和口令的#define 行更改為允許訪問服務器的值。這是有好處的,在這個意義上,至少應該能做一個連接。但是,這些值是程序中的固定編碼。所以筆者建議不要用這種方法,特別是對口令值。當將自己的程序編譯為二進制格式時,您可能認為口令隱藏起來了,但是,如果有人在程序上運行strings,則它根本隱藏不?。ǜ挥谜f明讀取訪問源文件的人根本不用做一點工作,就可以獲取口令)。 ; 在“客戶機程序4—運行時獲取連接參數”一節中我們將處理訪問的問題。首先,筆者想說明編寫連接代碼的一些其他方法。

標簽: MySQL 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩欧美国产1| 亚洲欧洲午夜| 一本一本久久a久久精品综合妖精| 精品电影一区二区| 国产成人精品aa毛片| 欧美日韩精品二区第二页| 日本va欧美va欧美va精品| 奶水喷射视频一区| 日韩毛片视频在线看| 国产精品a久久久久| 日本一区二区三区高清不卡| 91老师国产黑色丝袜在线| 久久久精品国产免大香伊 | 亚洲第四色夜色| 国产区日韩欧美| 亚洲影视在线播放| 午夜宅男久久久| 亚洲成人中文在线| 久久人人97超碰国产公开结果| 天天综合色天天| 欧美四级电影网| 久久99精品一区二区三区| 欧美精品aⅴ在线视频| 国产精品一区在线观看乱码| 日韩一区二区三区在线观看 | 性欧美暴力猛交另类hd| 日韩激情视频网站| 色婷婷综合久久久| 国产中文字幕一区| 在线播放国产精品二区一二区四区 | 亚洲午夜私人影院| 榴莲视频成人在线观看| 青青草精品视频| 欧美日韩一级视频| 国产.欧美.日韩| 国产欧美日韩卡一| 一区二区三区视频在线播放| 亚洲午夜免费视频| 在线免费不卡视频| 国产精品亚洲一区二区三区在线 | 欧美一区二区黄色| 成人激情文学综合网| 国产丝袜在线精品| 亚洲精品在线电影| 91麻豆免费观看| 亚洲视频免费在线| 欧美一级网站| 国产一区二区三区黄视频 | 欧美成人福利视频| 国内激情久久| 亚洲国产综合视频在线观看| 欧美羞羞免费网站| 成人av在线资源| 中文字幕亚洲一区二区va在线| 欧美亚洲三级| 国产精品系列在线播放| 国产精品日产欧美久久久久| 国产精品人人爽人人做我的可爱| 久久国产精品99精品国产| 久久亚洲春色中文字幕久久久| 亚洲经典三级| 久久机这里只有精品| 久久精品夜色噜噜亚洲aⅴ| 中文国产一区| 激情综合五月天| 久久精品人人做人人爽97| 亚洲精品韩国| 韩国v欧美v亚洲v日本v| 国产日韩一级二级三级| 国产精品午夜av在线| 国产一区二区在线视频| 国产精品入口麻豆九色| 91福利精品视频| 99精品国产99久久久久久白柏| 玉足女爽爽91| 51精品久久久久久久蜜臀| 欧美激情视频一区二区三区免费| 性做久久久久久免费观看欧美| 日韩限制级电影在线观看| 在线观看一区| 久久99精品国产| 欧美国产在线观看| 91精品1区2区| 欧美日韩视频| 麻豆久久一区二区| 国产精品乱人伦中文| 欧美色综合久久| 亚洲午夜精品久久久久久app| 日本特黄久久久高潮| 久久久精品免费网站| 色伊人久久综合中文字幕| av不卡一区二区三区| 日日夜夜精品视频免费| 久久香蕉国产线看观看99| 国产精品区一区| 精品一区免费av| 亚洲视频一区二区在线| 欧美嫩在线观看| 日韩一级在线| 不卡视频免费播放| 日韩极品在线观看| 国产精品视频一区二区三区不卡| 欧美图区在线视频| 在线欧美视频| 成人高清视频免费观看| 视频精品一区二区| 国产精品私人自拍| 91精品国产91久久综合桃花 | 午夜在线精品偷拍| 欧美高清一区| 国产剧情一区二区| 亚洲午夜久久久久中文字幕久| 欧美www视频| 久久综合狠狠| 国产精品porn| 成熟亚洲日本毛茸茸凸凹| 亚洲va欧美va人人爽| 国产偷国产偷精品高清尤物| 欧美日韩中文一区| 国产日韩1区| 色综合天天综合在线视频| 久久狠狠亚洲综合| 亚洲一区免费观看| 国产亚洲午夜高清国产拍精品| 欧美日韩国产123区| 免费一级欧美片在线播放| 好看的av在线不卡观看| 粉嫩高潮美女一区二区三区| 日本视频一区二区| 一区二区三区小说| 国产精品国产自产拍高清av王其| 日韩免费性生活视频播放| 欧美性猛交xxxx乱大交退制版| 亚洲一区图片| 亚洲精品在线观看免费| 色综合天天性综合| 大白屁股一区二区视频| 国内成人精品2018免费看| 五月激情六月综合| 国产精品成人免费精品自在线观看| 26uuu国产在线精品一区二区| 69堂亚洲精品首页| 欧美三级中文字| 在线亚洲免费视频| 色94色欧美sute亚洲线路二| 欧美亚洲色图校园春色| 欧美在线3区| 成人av电影免费观看| 国产精品一区二区三区网站| 免费在线看成人av| 亚洲成av人在线观看| 亚洲精品大片www| 亚洲欧美日韩在线不卡| 国产精品超碰97尤物18| 国产丝袜美腿一区二区三区| 26uuu精品一区二区在线观看| 91精品国产色综合久久ai换脸 | 在线日韩国产精品| 久久久久se| 午夜一级在线看亚洲| 国产日韩精品久久| 夜夜精品视频| 亚洲精品一区二| 黄色国产精品一区二区三区| 91年精品国产| 91蜜桃网址入口| 色综合中文字幕国产 | 国内成+人亚洲+欧美+综合在线| 日本视频在线一区| 日本不卡在线视频| 免费观看91视频大全| 蜜臀av性久久久久蜜臀aⅴ| 日韩福利视频导航| 日韩av在线发布| 日本在线不卡一区| 亚洲综合欧美| 午夜精品成人在线| 欧美成人精品福利| 国产麻豆精品95视频| 精品久久久久久久久久久久包黑料 | 午夜在线一区| 久久久国产精品一区二区中文| 午夜在线播放视频欧美| 一本久久综合亚洲鲁鲁五月天| 先锋影音久久| 在线观看精品一区| 欧美一区二区三区在线电影| 精品乱人伦小说| 国产免费成人在线视频| 亚洲人成在线播放网站岛国| 夜夜嗨av一区二区三区中文字幕 | 日韩三级中文字幕| 2020国产精品自拍| 欧美一区日韩一区| 久久综合久久99| 国产精品美女久久久久aⅴ国产馆| 中文字幕一区二区三区在线观看| 亚洲精品欧美激情| 午夜亚洲福利老司机| 激情都市一区二区|