我想第一次使用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
}
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码在循环的情况下很好.现在我如何从第一行或其他任何地方显示单个记录,任何记录,名称或电子邮件,只是单个记录,我该怎么做?在单记录的情况下,考虑删除所有上面的循环部分,并让我们显示没有循环的任何单个记录
You*_*nse 45
考虑删除所有上面的循环部分
所以,就像你说的那样:从代码中删除循环,剩下的就是:
$query = "SELECT ssfullname, ssemail FROM userss ORDER BY ssid";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
?>
Name: <?=$row['ssfullname']?><br />
Email: <?=$row['ssemail']?><br />
Run Code Online (Sandbox Code Playgroud)
顺便说一句,虽然在学习的同时使用原始api是可以的,但考虑将来使用一些数据库抽象库.
它会将您的所有数据库代码转换为3行:
include 'database.class.php';
$db = new DB();
$row = $db->getRow("SELECT ssfullname, ssemail FROM userss ORDER BY ssid LIMIT 1");
Run Code Online (Sandbox Code Playgroud)
使用 mysqli_fetch_row(). 尝试这个,
$query = "SELECT ssfullname, ssemail FROM userss WHERE user_id = ".$user_id;
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_row($result);
$ssfullname = $row['ssfullname'];
$ssemail = $row['ssemail'];
Run Code Online (Sandbox Code Playgroud)
如果您只假设一个结果,则可以使用特定用户ID建议的Edwin建议.
$someUserId = 'abc123';
$stmt = $mysqli->prepare("SELECT ssfullname, ssemail FROM userss WHERE user_id = ?");
$stmt->bind_param('s', $someUserId);
$stmt->execute();
$stmt->bind_result($ssfullname, $ssemail);
$stmt->store_result();
$stmt->fetch();
ChromePhp::log($ssfullname, $ssemail); //log result in chrome if ChromePhp is used.
Run Code Online (Sandbox Code Playgroud)
或者作为"您的常识",它只选择一个用户.
$stmt = $mysqli->prepare("SELECT ssfullname, ssemail FROM userss ORDER BY ssid LIMIT 1");
$stmt->execute();
$stmt->bind_result($ssfullname, $ssemail);
$stmt->store_result();
$stmt->fetch();
Run Code Online (Sandbox Code Playgroud)
除了PHP v.5之外,与上面没有什么不同