我创建了这段代码:
$statement = $db->prepare("SELECT * FROM phptech_contact");
$statement->execute();
$result = $statement->result_metadata();
$object = $result->fetch_object();
print_r( $object );
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它不起作用.任何人都可以告诉我为什么它不起作用?
我在这个表中有20行,所以应该返回数据.
来自http://ch.php.net/manual/en/mysqli-stmt.result-metadata.php
Note: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_stmt_fetch().
只要您不需要此元数据,就不需要调用此方法.
$statement = $db->prepare("SELECT fld1, fld2 FROM phptech_contact");
$statement->execute();
$stmt->bind_result($fld1, $fld2);
while ($stmt->fetch()) {
echo "$fld1 and $fld2<br />";
}
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢mysqli扩展.PDO更酷...... ;-)
$db = new PDO('...');
$stmt = $db->prepare("SELECT fld1, fld2 FROM phptech_contact");
$stmt->execute();
while ($obj = $stmt->fetchObject()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
要么
$objs = stmt->fetchAll(PDO::FETCH_OBJ);
Run Code Online (Sandbox Code Playgroud)