五月开心播播网_国内精品伊人久久久久影院对白_亚洲精品高清视频_国产精品激情_68精品久久久久久欧美_四虎免费av_97精品在线视频_欧美知名女优

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

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

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

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

久久久久久日产精品| 国产精品人人做人人爽人人添| 欧美xxxx免费虐| 黄色网页在线| 国产伦精品一区二区三区免.费| 中文字幕制服丝袜| 老司机午夜免费福利视频| 日韩av片电影专区| 亚洲国产美女久久久久| 亚洲一卡二卡三卡四卡| 成人在线视频一区二区| 精品999日本| 国产 日韩 欧美 综合 一区| 国产亚洲成av人片在线观看 | 亚洲国产精品成人精品| 亚洲午夜免费视频| 成人国产精品免费| 国产精品资源| 四虎成人av| 国内毛片久久| 91欧美精品| 国产高潮在线| 国产在线激情| 中文在线√天堂| 337p日本| 岛国爱情动作片在线| 影音先锋国产在线资源| 精品国产伦一区二区三区| 全网免费在线播放视频入口| 美女搡bbb又爽又猛又黄www| 日韩一级片播放| 青青青青草视频| 四虎免费在线观看视频| 久久99精品久久久久久水蜜桃 | 中文久久电影小说| 国产经典三级在线| 在线观看h网| 日本中文在线观看| 狠狠v欧美ⅴ日韩v亚洲v大胸 | 欧美一级在线播放| 色综合久久中文字幕综合网小说| 国产亚洲视频在线| 亚洲天堂视频在线观看| 精品偷拍一区二区三区在线看 | 十大黄色软件免费看| 欧美多人野外伦交| 亚洲精品综合一区二区三区| 美女把腿扒开让男人桶免费| 婷婷色在线观看| 秋霞视频一区二区| 成人免费视频国产| 人妻少妇精品无码专区久久| 亚洲免费成人网| 色欲av伊人久久大香线蕉影院| 国产福利视频导航| 色综合视频在线| 狠狠鲁男人天堂| 亚洲精品人成电影网| 伦理欧美一区| 性生活视频网站| 2019天天干夜夜操| a优女a优女片| 亚洲最大黄色| 91se在线| 亚洲精品日产| 四虎国产精品免费久久| 亚洲精品视频一二三区| 免费欧美视频| 午夜欧美视频| 青草国产精品久久久久久| 国产成人午夜精品5599| 99免费精品视频| 最近日韩中文字幕| 日韩欧美极品在线观看| 欧美一级免费观看| 国产一区二区三区高清在线观看| 九九热这里只有精品6| 国产99在线|中文| 好吊色欧美一区二区三区| 中文字幕一区二区三区乱码| 成年人午夜视频在线观看| 欧美日韩理论片| 亚洲女同二女同志奶水| 69国产精品视频免费观看| 国产成人麻豆精品午夜在线| 四虎国产精品永久| av美女在线| 国产淫片在线观看| av一级久久| 一级毛片免费高清中文字幕久久网| 香蕉久久久久久久av网站| 97久久人人超碰| 午夜精品视频一区| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 久久白虎精品| 免费黄色在线| 日韩城人网站| 欧美a级在线| 成人av在线观| 欧美视频在线观看免费| 日韩激情在线视频| 69精品小视频| 麻豆91蜜桃| 免费涩涩18网站入口| 日本黄色激情视频| 国产精品伦一区二区三区| 在线观看xxxxvideo| 韩国精品视频| 日韩久久一区| 中文亚洲字幕| 国产精品萝li| 亚洲第一福利视频| 国产精品久久久久久久久久新婚| 亚洲欧洲一区二区| 粗大的内捧猛烈进出视频| 日韩精品一区二区三区国语自制| 欧美一级在线免费观看| 国产在线视频你懂| 日韩欧美看国产| 牛牛国产精品| 国产亚洲一区二区在线观看| 7777精品久久久大香线蕉| 91精品国产乱码久久久久久蜜臀| 亚洲欧美久久久久一区二区三区| 日本精品一区在线| 懂色av蜜臀av粉嫩av分享吧最新章节 | 国产高清精品久久久久| 精品国产乱码久久久久久天美| 少妇高潮久久久久久潘金莲| 国产chinese精品一区二区| 日韩中文字幕二区| 国产污片在线观看| 久久影院朴妮唛| av三级在线播放| 国产精品一区二区精品| 久久精品久久精品| 欧洲亚洲国产日韩| 外国成人在线视频| 在线伊人免费视频| a看欧美黄色女同性恋| 国产在线精品视频| 制服视频三区第一页精品| 国产日韩欧美日韩大片| 久久99999| 国产三区在线播放| 色播色播色播色播色播在线| 日本午夜精品| 国产欧美日韩另类视频免费观看| 日韩大陆毛片av| 你懂的网址一区二区三区| 中文字幕在线看高清电影| 亚洲精品手机在线| 欧美亚洲天堂| 亚洲伊人观看| 欧美精品乱码久久久久久按摩| 成人网址在线观看| 九九九九九九九九| 好吊色在线观看| 九七电影韩国女主播在线观看| 亚洲成人二区| 欧美日韩亚洲视频一区| 91精品视频免费看| 国产黑丝一区二区| 久久精品国产亚洲777| 亚洲伦乱视频| 国产裸体歌舞团一区二区| 日韩精品高清视频| 免费看污污视频| 免费看av在线| 永久免费av在线| 国产精品最新自拍| 精品国产乱码久久久久久老虎| 午夜精品一区二区三区在线观看| 免费一级片视频| 曰韩少妇与小伙激情| 热久久天天拍国产| 色婷婷亚洲综合| 久久精品综合一区| 久久香蕉精品视频| 中文字幕在线免费观看| 欧美国产日本| 3d动漫精品啪啪一区二区竹菊 | 天堂中文在线播放| 国产·精品毛片| 欧美精品少妇videofree| 一本色道久久亚洲综合精品蜜桃| 欧性猛交ⅹxxx乱大交| 成人自拍视频网| 中文乱码免费一区二区| 国产精品 欧美在线| 亚洲精品国产91| 国产字幕中文| 尹人成人综合网| 亚洲精品大尺度| 亚洲五月天综合| 国产免费高清| 极品束缚调教一区二区网站| 亚洲丰满少妇videoshd| 日本午夜精品一区二区| 国产婷婷在线视频|