$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$consulta = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";
if ($sentencia = $mysqli->prepare($consulta)) {
/* ejecutar la sentencia */
$sentencia->execute();
/* vincular las variables de resultados */
$sentencia->bind_result($nombre, $código);
/* obtener los valores */
while ($sentencia->fetch()) {
printf ("%s (%s)\n", $nombre, $código);
}
/* cerrar la sentencia */
$sentencia->close();
}
/* cerrar la conexión */
$mysqli->close();
在 mysqli 中,
fetch
它是应用于对象的方法或函数,mysqli_stmt
用于读取所述对象返回的结果。fetch
它可以用西班牙语翻译为去寻找,或带来,恢复。这就是它fetch
的本质,给我们带来的结果。它
fetch
一般用在循环while, foreach
(这就是为什么它几乎总是这样
fetch
使用:衍生的方法
fetch
您在问题中提出的链接(指向 PDO 中的不同变体)
fetch
为我们打开了讨论.fetch
mysqli
与 PDO 一样(尽管这个允许更多更有趣的可能性),您还有几种
mysqli
方法可以称为这些结果。fetch
应该说
fetch
它只适用于objectmysqli_stmt
,正如我们上面所说的。虽然这些其他方法也可以应用于对象mysqli_result
,以获取/读取所述对象返回的结果1。枚举这些方法很方便,我们可以在 PHP 手册中描述的 Class Synopsis
mysqli_result
中找到它们。它们是:
fetch_all
:获取关联数组、数值数组或两者中的所有行。fetch_array
: 将结果行作为关联数组、数字或两者都获取。fetch_assoc
:获取结果行作为关联数组。fetch_field_direct
:获取单个字段的元数据。fetch_field
:获取结果集的下一个字段。fetch_fields
:获取表示结果集字段的对象数组。fetch_object
:获取结果集的当前行作为对象。fetch_row
:获取结果行作为枚举数组。它不如 PDO 丰富,但是,它是:)。另外,应该注意的是
mysqli
,为了使这些方法中的一些起作用,必须安装驱动程序mysqlnd
,这是一个额外的困难,这使得它mysqli
不那么有吸引力(至少对我来说),因为你将编程部分代码可能不起作用,具体取决于外部驱动程序。对我来说,这是 mysqli 设计师的一个严重错误。我希望它对你有帮助。
成绩:
1
fetch
相反,不适用于对象mysqli_result
。当我们尝试使用 读取此对象返回的结果时fetch
,我们得到以下异常:Call to undefined method mysqli_result::fetch()
. 请注意,这适用于方法mysqli_query
,通常在不需要准备查询时使用,其结果也是一个对象mysqli_result
。它的作用是通过函数填充链接到语句的变量
mysqli_stmt::bind_result()
,表示函数返回2个值FALSE 发生错误
取自 php 文档http://php.net/manual/es/mysqli-stmt.fetch.php