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

时间:2011-11-09 16:00:10

标签: php prepared-statement

阅读本页http://www.php.net/manual/en/mysqli-stmt.bind-result.php

我对PS有一些疑问

  • 在示例中,我看不到$stmt = $db->stmt_init();是否需要创建新实例( 在每个开头添加$stmt=$db->stmt_init()行) 声明和$ stmt->结束时关闭或者根本没关系:我 可以从$stmt = $mysqli->prepare("... ??
  • 开始
  • 我可以在代码的开头创建语句对象1次 长期使用它所有代码?

1 个答案:

答案 0 :(得分:4)

mysqli_prepare()创建一个包含您要运行的链接标识符和查询的对象时,您不需要使用mysqli_stmt::init

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

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

注意:在每次查询后,您必须始终使用mysqli_stmt::close(一旦获得结果)。这将清除对象查询和结果集,将对象重新初始化为与首次创建时相同的状态。

希望有所帮助。