Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中prepared语句的执行顺序_Php_Prepared Statement - Fatal编程技术网

php中prepared语句的执行顺序

php中prepared语句的执行顺序,php,prepared-statement,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

我已经阅读了所有关于准备好的语句的内容,但我仍然不确定执行的顺序。。。(许多使用不同的顺序)

这道菜好吗

$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
显然不是

虽然顺序很好,但您使用的许多运算符都是多余和无用的。此外,在执行单个查询的上下文中不应该有连接相关的代码

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();
够了。请注意,如果有数据,则不需要行计数