使用 mysqli 获取预准备语句的实际 SQL?

发布于 2024-08-05 12:46:33 字数 198 浏览 5 评论 0原文

有什么方法可以获取使用 mysqli 扩展时准备语句的实际 SQL 结果吗?

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

有什么办法可以做到这一点吗?我检查了 mysqli 参考文档,但他们似乎没有任何内容。

Is there any way to get the actual SQL that is the result of preparing a statement when using the mysqli extension?

My problem:
I am using prepared statements. In all cases, they SHOULD update a record. I am not catching any errors. However, when I check for affected rows, there are none. So, I want to see the actual SQL that would be executed as a result of the prepare statement.

Is there any way to do this? I've check the mysqli reference docs, but they don't seem to have anything.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

有深☉意 2024-08-12 12:46:33

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

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

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

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

    return $SQL;
}

While I was looking for a Mysqli specific answer I found that all refer to PDO only thus not addressing the issue with using the ? placeholder.

So here I post my contribution of a simple function to replace all the ? for the parameters. (PHP 7)

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

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

    return $SQL;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文