看板 Web_Design 關於我們 聯絡資訊
※ 引述《grassboy2 (活力花俏草兒Grassboy大렩》之銘言: : 啊啊…話說最近在重寫一個網站… : 想說有用到mysqli_query的… : 都能夠利用一個function,讓mysqli_query一出現錯誤就終止php程式… : 以下是我實作的方式: : function mysqli_query_new($link,$query) //執行mysqli_query,有錯便終止程式 : { : $result=mysqli_query($link,$query); : if(mysqli_errno($link)){ : echo "MySQL執行過程錯誤,程式強行中止:<br>". : "錯誤訊息為:".mysqli_error($link)."<br><br>"; : exit(); : } else { : return $result; : } : } : 問題來了@@~ : 如果…用這個方法去作每個query… : 那麼當mysqli_query_new這個function return了一個result... : 那在mysqli_query_new裡的result會被free掉嗎? : 這個不知道要怎麼爬文... : 所以如果op了^^"真的很抱歉耶^^" 其實有點看不懂你在問什麼....@@ 不過如果 你在主程式裡這樣用: $queryresult=mysqli_query_new($somelink,$somequery); 那麼$result的值就會被接到$queryresult裡面 你要作動作時就可以用$queryresult去做 那你其實可以不用管到底$result的生命週期是到哪 -- 我都用這樣來除query的錯的 就是寫一個函式 在函式中echo出註解 表示我query了啥 然後把實際query的結果丟出來 -- 還是你是想要知道當你連續做 $query1=mysqli_query_new($somelink,$somequery); $query2=mysqli_query_new($someotherlink,$someotherquery); 這樣時 $query1的值會不會不見嗎? 理論上是不會 因為$query1是把它回傳的結果接下來這樣 所以等於是把$result的值複製一次 (不然我的印象中好像local變數出了函式就不見了不是嗎?) 那兩次呼叫的$result該是獨立的 -- 'Oh, Harry, dont't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.240.54
grassboy2:喔喔!所以…複製過一次後…mysqli_query_new裡的result 04/07 12:07
grassboy2:就會被自動free掉了嗎@@a 04/07 12:07
grassboy2:對了…這種寫法比較建議debug時才用嗎? 04/07 12:23
grassboy2:還是說其實對主機的負擔沒有增加多少呢? 04/07 12:24