2012-08-09 52 views
1

簡短的問題,但顯然谷歌和php.net不知道這個,所以我很好奇,如果這是可能的。找出mysqli查詢字符串

你能得到一個mysqli元素的查詢字符串嗎?我需要它來作出適當的錯誤功能

$mysqli = new mysqli(....); 
$mysqli->query('INSERT INTO test(value) VALUES ('.rand(1,10000).');'); 
// here how do i find out the query of the $mysqli object WITHOUT having 
// to save it before (i.e. using the actual $mysqli object) 

謝謝!

+0

可能的複製http://stackoverflow.com/questions/962986/how-to-echo-a-mysqli-prepared-statement + http://stackoverflow.com/questions/2691707/is-there-any-way-to-print -the-actual-query-that-mysqli-execute-makes – newfurniturey 2012-08-09 21:22:47

+1

我個人不直接使用mysqli方法,而是編寫我自己的包裝類。那裏的查詢方法會檢查錯誤,如果有錯誤,它仍然在本地變量中有SQL查詢。這樣做的好處是1)抽象數據庫,所以我可以改變供應商,2)更好的錯誤處理3)自動處理轉義4)便利的方法,如$ db-> getRow(「...」)和$ db-> getRows和$ db-> getValue等 – webjprgm 2012-08-09 21:23:34

+0

您的問題很難理解,重寫它並添加一個您期望的例子會很好。 – Jocelyn 2012-08-09 21:31:36

回答

-2

不知道我理解你的問題,而是:

$sql = "INSERT INTO test(value) VALUES ('.rand(1,10000).');"; 
$mysqli->query($sql); 

......然後,在你隨後的scirpt,你可以參考$sql

if($sql = '...'){...} 

等等

+0

Downvoter!爲什麼? – Madbreaks 2012-08-10 20:21:30

+2

嗯,這不是我,而是基於你回答從字符串構建的查詢的問題。 OP需要從mysqli對象返回的字符串。不是他建造的那個。它是這樣,你可以確保查詢運行。 – Twister1002 2014-07-24 15:11:01