2012-08-09 80 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