Reading data is very important for PHP. This article explains in detail how to read data through PHP MySQL.
Read data from MySQL database
The SELECT statement is used to read data from the data table:
SELECT column_name(s) FROM table_name
We can use the * sign to read fields in all data tables:
SELECT * FROM table_name
To learn more about SQL, please visit our SQL Tutorial.
Using MySQLi
In the following example, we read the data of the id, firstname and lastname columns from the MyGuests table of the myDB database and display it on the page:
Example (MySQLi - Object-oriented)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} $sql = "SELECT id, firstname, lastname FROM MyGuests";$result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }} else { echo "0 结果";}$conn->close();?>
The above code is analyzed as follows:
First, we set up the SQL statement to read id, firstname and lastname from the MyGuests data table Three fields. We then use the modified SQL statement to retrieve the result set from the database and assign it to the copied variable $result.
Function num_rows() determines the returned data.
If multiple pieces of data are returned, the function fetch_assoc() will put the combined set into an associative array and output it in a loop. while() loops out the result set and outputs the three field values id, firstname and lastname.
The following example uses MySQLi's process-oriented approach, and the effect is similar to the above code:
Example (MySQLi - process-oriented)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建连接$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) { die("连接失败: " . mysqli_connect_error());} $sql = "SELECT id, firstname, lastname FROM MyGuests";$result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }} else { echo "0 结果";} mysqli_close($conn);?>
Use PDO (preprocessing)
The following examples use prepared statements.
Selected the id, firstname and lastname fields in the MyGuests table and placed them in the HTML table:
Example (PDO)
<?phpecho "<table style='border: solid 1px black;'>";echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>"; class TableRows extends RecursiveIteratorIterator { function construct($it) { parent::construct($it, self::LEAVES_ONLY); } function current() { return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>"; } function beginChildren() { echo "<tr>"; } function endChildren() { echo "</tr>" . "\n"; } } $servername = "localhost";$username = "username";$password = "password";$dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt->execute(); // 设置结果集为关联数组 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v; }}catch(PDOException $e) { echo "Error: " . $e->getMessage();}$conn = null;echo "</table>";?>
This article explains in detail how to use php MySQL For the operation of reading data, please pay attention to the php Chinese website for more learning materials.
Related recommendations:
Related knowledge about PHP MySQL prepared statements
How to insert multiple pieces of data through PHP MySQL
How to insert data through PHP MySQL
The above is the detailed content of How to read data through PHP MySQL. For more information, please follow other related articles on the PHP Chinese website!