【发布时间】:2016-01-21 15:12:12
【问题描述】:
我很沮丧。我不知道这里有什么问题。我无法从语句中获得结果,但我从查询中获得了结果!
/// query
$query = "SELECT * FROM tbl_token WHERE tbl_token.id = 1" ;
$results = $mysqli->query($query);
$row = $results->fetch_row();
var_dump($row); /// it works!
/// with statement
$stmt = $mysqli->prepare("SELECT * FROM tbl_token WHERE tbl_token.id = 1");
$stmt->execute();
$result = $stmt->result_metadata();
$row = $result->fetch_row();
var_dump($row); /// it doesn't work. It is null.
我的php版本是5.5.9。
更新
1- fetch_field 工作,但我想在这里获取整行。
2- 我按照 php 手册 获取 result_metadata。
3- 我不知道为什么get_result() 不起作用。看起来mysqlnd
没有安装。由于我的 php 版本,对我来说很奇怪。
【问题讨论】:
-
我相信你需要在这里使用 fetch_assoc
-
php.net/manual/en/mysqli-stmt.result-metadata.php 您正在获取数据 ABOUT 结果,而不是表本身的实际数据。例如
select name from contacts将在您获取结果字段时返回name = John Doe,而在您获取元数据时将返回field name is "name", type is "varchar"。