Home >Backend Development >PHP Problem >What is the purpose of mysqli_query() and mysqli_fetch_assoc()?
The mysqli_query()
function in PHP is used to execute SQL queries against a MySQL database. This function can be used to perform various types of SQL operations, such as SELECT, INSERT, UPDATE, and DELETE. When mysqli_query()
is called, it sends the SQL query to the MySQL server, and the server processes the query. The function returns a result object if the query was a SELECT statement, or TRUE/FALSE for other types of queries indicating success or failure.
On the other hand, mysqli_fetch_assoc()
is a function used to retrieve the results of a SELECT query executed by mysqli_query()
. Specifically, it returns the next row from a result set as an associative array, where the column names are the keys, and the data from the corresponding columns are the values. This function is called repeatedly until there are no more rows to fetch, at which point it will return NULL.
The primary difference between mysqli_query()
and mysqli_fetch_assoc()
lies in their specific roles within the process of interacting with a MySQL database.
mysqli_query()
is responsible for executing SQL commands. It sends the SQL query to the MySQL server and handles the communication aspect. Whether it's retrieving data, updating records, inserting new data, or deleting data, mysqli_query()
acts as the gateway through which these commands are executed. It returns either a result object for queries that fetch data, or a boolean value indicating the success or failure of the operation for queries that do not fetch data.
In contrast, mysqli_fetch_assoc()
does not execute queries but instead processes the results of a SELECT query that was executed by mysqli_query()
. It takes the result object returned by mysqli_query()
and retrieves the data row by row in the form of an associative array. This function is used to iterate through the results of a query and access data in a structured manner.
Let's consider an example where we want to fetch all user records from a database table named users
and display them on a webpage. Here’s how you would use mysqli_query()
and mysqli_fetch_assoc()
together in a PHP script:
<code class="php"><?php // Assuming the connection to the database has already been established and stored in $conn // Execute the query to fetch all users $result = mysqli_query($conn, "SELECT id, username, email FROM users"); // Check if the query was successful if ($result) { // Start HTML table output echo "<table border='1'> <tr> <th>ID</th> <th>Username</th> <th>Email</th> </tr>"; // Iterate through the result set while ($row = mysqli_fetch_assoc($result)) { echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['username'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } // Close the table echo ""; } else { // Output error message echo "Error: " . mysqli_error($conn); } // Close the database connection mysqli_close($conn); ?></code>
In this example, mysqli_query()
is used to execute a SELECT query to fetch data from the users
table. The result of this query is then processed using mysqli_fetch_assoc()
in a loop, which fetches each row one by one as an associative array. The data from these rows is used to build an HTML table for display.
Using mysqli_fetch_assoc()
has several benefits compared to other mysqli_fetch
functions, such as mysqli_fetch_array()
, mysqli_fetch_row()
, and mysqli_fetch_object()
:
mysqli_fetch_assoc()
, you can access the data by column name (key) in the associative array. This makes the code more readable and easier to understand, especially in complex applications with many columns.mysqli_fetch_array()
can return data as both associative arrays and numerically indexed arrays, using mysqli_fetch_assoc()
specifically for associative arrays can help in maintaining a consistent approach to data handling throughout your script.mysqli_fetch_array()
.Overall, mysqli_fetch_assoc()
offers a straightforward and flexible method for handling result sets from MySQL queries in PHP, which can improve both the readability and maintainability of your code.
The above is the detailed content of What is the purpose of mysqli_query() and mysqli_fetch_assoc()?. For more information, please follow other related articles on the PHP Chinese website!