首页 > 解决方案 > php - 准备好的语句。执行后绑定是否正确?

问题描述

关于php中的“准备好的语句”,
我在php的官方文档中发现这段我不明白的代码。

/* execute statement */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($name, $code);

我总是先看到“绑定”,然后再看到“执行”。

有人能告诉我为什么在这种情况下,是相反的吗?

谢谢。

标签: phpsqlprepared-statement

解决方案


绑定“参数”和绑定“结果”是两个不同的东西。

您必须在执行之前绑定参数,因为参数将在执行期间使用。

然而,执行后你在 $stmt 对象中得到了结果,如果你想使用结果中的列,你可以将结果绑定到变量。

所以这里是步骤:

  1. 将参数绑定到 $stmt 对象

    $stmt->bind_param(...)

  2. 执行准备好的语句

    $stmt->执行()

  3. 将结果中的列绑定到变量

    $stmt->bind_result(...)


推荐阅读