获取带有mysqli的预处理语句的实际SQL?

Jus*_*oel 5 mysqli prepared-statement

使用mysqli扩展时,是否有任何方法可以获取由于准备语句而产生的实际SQL?

我的问题:我正在使用准备好的语句。在所有情况下,他们都应更新一条记录。我没有发现任何错误。但是,当我检查受影响的行时,没有任何行。因此,我想查看由于prepare语句而执行的实际SQL。

有什么办法吗?我检查了mysqli参考文档,但它们似乎没有任何内容。

JDu*_*eDJ 0

当我寻找 Mysqli 特定答案时,我发现所有答案都仅引用 PDO,因此没有解决使用?占位符的问题。

所以在这里我发布了一个简单函数的贡献来替换所有?参数。(PHP 7)

function addParamsToSQL ( string $SQL, array $params ) : string {

    foreach($params as $value)
        $SQL = preg_replace ( '[\?]' , "'" . $value . "'" , $SQL, 1 );

    return $SQL;
}
Run Code Online (Sandbox Code Playgroud)