【问题标题】:find out mysqli query string找出 mysqli 查询字符串
【发布时间】:2012-08-09 21:15:31
【问题描述】:

简短的问题,但显然 google 或 php.net 对此一无所知,所以我很好奇这是否可能。

你能得到一个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)

谢谢!

【问题讨论】:

  • 我个人不直接使用mysqli的方法,而是自己写一个包装类。那里的查询方法将检查错误,如果有错误,它仍然在局部变量中保留 SQL 查询。这样做的好处是 1) 抽象数据库,因此我可以更改供应商,2) 更好的错误处理 3) 自动处理转义 4) 方便的方法,如 $db->getRow("...") 和 $db-> getRows 和 $db->getValue 等
  • 您的问题很难理解,最好重写它并添加一个您所期望的示例。

标签: php mysqli


【解决方案1】:

http://www.php.net/manual/en/class.mysqli-result.php 来看 - 你不能。

$mysqli->query()是一个方法调用,它返回mysqli_result对象,查看上面的manual page,它没有包含刚刚执行创建它的查询的记录。

【讨论】:

    【解决方案2】:

    不确定我是否理解您的问题,但是:

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

    ...然后,稍后在您的脚本中,您可以引用$sql

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

    等等

    【讨论】:

    • 好吧,这不是我,而是基于您指的是从字符串返回构建查询的问题。 OP 想要一个从 mysqli 对象返回的字符串。不是他建造的那个。这样您就可以确保查询已运行。
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2013-07-05
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多