我正在尝试第一次使用mySQLi。我已经完成了以防循环。循环结果正在显示,但是当我尝试显示单个记录时我陷入了困境。这是有效的循环代码。
<?php
// Connect To DB
$hostname="localhost";
$database="mydbname";
$username="root";
$password="";
@$conn = mysqli_connect($hostname, $username, $password)
or die("Could not connect to server " . mysql_error());
mysqli_select_db($conn, $database)
or die("Error: Could not connect to the database: " . mysql_error());
/*Check for Connection*/
if(mysqli_connect_errno()){
// Display Error message if fails
echo 'Error, could not connect to the database please try again again.';
exit();
}
?>
<?php
$query = "SELECT ssfullname, ssemail FROM userss ORDER BY ssid";
$result = mysqli_query($conn, $query);
@$num_results = mysqli_num_rows($result);
?>
<?php
/*Loop through each row and display records */
for($i=0; $i<$num_results; $i++) {
$row = mysqli_fetch_assoc($result);
?>
<?php // echo 'Name' .$row['ssfullname'] . 'email' . $row['ssemail'] . "\n"; ?>
Name: <?php print $row['ssfullname']; ?>
<br />
Email: <?php print $row['ssemail']; ?>
<br /><br />
<?php
// end loop
}
?>
上面的代码在循环的情况下很好。现在,如何显示第一行中的任何记录,任何记录,名称或电子邮件,或者仅显示单个记录,我该怎么做?在单个记录的情况下,请考虑删除所有上述循环部分,并显示没有循环的任何单个记录。
当仅需要单个结果时,则不应使用循环。只需立即获取该行。
如果您需要将整个行提取到关联数组中:
$row = $result->fetch_assoc();
万一你只需要一个值
$row = $result->fetch_row();
$value = $row[0];
以下是针对不同用例的完整示例
当在查询中使用变量时,则必须使用 准备好的语句 。例如,假设我们有一个变量$id
:
$query = "SELECT ssfullname, ssemail FROM userss WHERE ud=?";
$stmt = $conn->prepare($query);
$stmt->bind_param("s", $id);
$stmt->execute()
$result = $stmt->get_result();
// in case you need an array
$row = $result->fetch_assoc();
// OR in case you need just a single value
$row = $result->fetch_row();
$value = $row[0];
在我的文章中可以找到有关上述过程的详细说明。至于为什么必须遵循它,在这个著名的问题中得到了解释
在您的情况下,如果查询中不使用任何变量,则可以使用以下query()
方法:
$query = "SELECT ssfullname, ssemail FROM userss ORDER BY ssid";
$result = $conn->($query);
// in case you need an array
$row = $result->fetch_assoc();
// OR in case you need just a single value
$row = $result->fetch_row();
$value = $row[0];
顺便说一下,尽管可以在学习的同时使用原始API,但是将来可以考虑使用一些数据库抽象库。
它将 所有 数据库代码转换为3行:
include 'database.class.php';
$db = new DB();
$row = $db->getRow("SELECT ssfullname, ssemail FROM userss ORDER BY ssid LIMIT 1");
我有3个表users(id、name等)、trips(id、user_id、from、to、destination)、vactions(id、user_id、from、to、destination)。我使用mysqli,我不知道怎么做,我需要像这样获取这个表 我试过左加入,但我不工作,我的代码现在只适用于用户:
问题内容: 我需要从结果对象获取所有行。我正在尝试建立一个将容纳所有行的新数组。 这是我的代码: 应该是包含所有行的新数组,但是我得到一个空数组。 任何想法为什么会这样? 问题答案: 您有一个轻微的语法问题,即错误的分号。 注意结尾的分号吗?这意味着后面的程序段不是循环执行的。摆脱它,它应该可以工作。 另外,您可能需要检查查询是否确实有效:
我正在为我的网站做一个注册页面。我在PHPMyAdmin中维护一个包含7个字段的数据库(id、用户名、密码、电子邮件、活动、代码和日期)。我正在使用代码和活动字段来实现电子邮件激活。注册表单使用post方法获取4个参数(名称、电子邮件、密码和重新键入密码),并将提交按钮的信息传递给PHP代码,以检查用户是否是新的,电子邮件ID是否应该是新的,并在单击提交按钮后检查空字段。PHP代码如下所示: 当我
本文向大家介绍PHP使用mysqli操作MySQL数据库的简单方法,包括了PHP使用mysqli操作MySQL数据库的简单方法的使用技巧和注意事项,需要的朋友参考一下 PHP的 mysqli 扩展提供了其先行版本的所有功能,此外,由于 MySQL 已经是一个具有完整特性的数据库服务器 , 这为PHP 又添加了一些新特性 。 而 mysqli 恰恰也支持了这些新特性。 一. 建立和断开连接 与 My
Iam是JPA的新手,尝试创建EJB 3.0+JPA(hibernate)应用程序。当iam将数据持久化到数据库中时,出现以下异常。 sessionBean方法: 客户类(实体类)
在过去的一周里,我一直试图在电脑上学习MySQL。我有一个名为用户的数据库和一个名为用户的表,表中有数据。但是我下面有这个PHP代码,它不会得到任何结果,我不知道为什么。