需要一些关于PHP中准备好的语句的解释吗

需要一些关于PHP中准备好的语句的解释吗,php,prepared-statement,Php,Prepared Statement,阅读本页 我有一些关于PS的问题 在示例中,我没有看到$stmt=$db->stmt_init()是否需要创建新实例( 在每行的开头添加$stmt=$db->stmt_init()行) 语句和$stmt->结束时关闭,否则根本不重要:I 可以从$stmt=$mysqli->prepare(“…?”开始 我可以在代码开头创建语句对象1次吗 使用所有代码长 当mysqli\u prepare()使用链接标识符和要运行的查询创建对象时,不需要使用mysqli\u stmt::init 使用mysql

阅读本页

我有一些关于PS的问题

  • 在示例中,我没有看到
    $stmt=$db->stmt_init()是否需要创建新实例(
    在每行的开头添加
    $stmt=$db->stmt_init()
    行) 语句和$stmt->结束时关闭,否则根本不重要:I 可以从
    $stmt=$mysqli->prepare(“…
    ?”开始
  • 我可以在代码开头创建语句对象1次吗 使用所有代码长
mysqli\u prepare()
使用链接标识符和要运行的查询创建对象时,不需要使用
mysqli\u stmt::init

使用
mysqli_stmt::init
的优点是在配置文件中创建对象的实例。任何后续需要/包含的脚本都会准备好一个查询对象供使用,从而减少需要编写的代码量

第二个问题:是的。将对象视为具有一个生命周期,从初始化它的代码行到脚本的最后一行代码,或者当调用它的
\u destruct()
magic方法时。它可以在创建后的任何时间使用,允许您不断更改查询并使用同一对象执行更多代码

请注意:每次查询后(获取结果后),必须始终使用
mysqli\u stmt::close
。这将清除对象查询和结果集,并将对象重新初始化为首次创建时的状态


希望对您有所帮助。

您只需执行一个
->prepare()
调用。它将在内部为您执行stmt\u init。您应该
->prepare())
为您正在运行的每个不同查询创建一个新语句。我需要在操作后关闭它吗?只有在您正在执行一个长时间运行的脚本时才需要。php具有相当好的清理功能,并且在函数返回和/或脚本退出时会销毁任何剩余的积垢。@MarcB我们可以与您聊天吗?我有一些关于ps的问题。@MarcB