php中预准备语句的执行顺序

时间:2013-08-17 23:04:33

标签: php prepared-statement

我已阅读有关准备好的陈述的所有内容,而且我仍然不确定执行的顺序......(许多人使用不同的顺序)。

这是一个好的订单吗?

$sql = 'SELECT * FROM ... WHERE ... = ?';

$conn = ...connection to database...
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('i', $param);
$stmt->execute();
$stmt->store_result(); // results are cached and accessed from memeory, therefore faster but use more memory
$num_rows = $stmt->num_rows; // how many? (can only be use with store_result() )
$stmt->bind_result($column, ...);
$stmt->fetch(); // use in loop if necessary
$stmt->free_result(); // use only with store_result()
$stmt->close(); // close prepared statement
$conn->close(); // close database

1 个答案:

答案 0 :(得分:0)

显然不是。

虽然秩序很好,但是你使用的许多操作员都是多余的,没用。此外,在执行单个查询的上下文中应该没有与连接相关的代码。

include 'db.php'; // here goes connect
$sql = 'SELECT * FROM ... WHERE ... = ?';
$stmt->prepare($sql);
$stmt->bind_param('i', $param);
$stmt->execute();
$stmt->bind_result($column, ...);
$stmt->fetch();

就够了。请注意,如果您有数据,则永远不需要row_count。