English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il database MySQL utilizza la query SELECT SQL per la ricerca dei dati.
Puoi eseguire una query di dati nel database utilizzando il prompt dei comandi mysql> o tramite uno script PHP.
Di seguito è riportata la sintassi SELECT universale per la query dei dati nel database MySQL:
SELECT column_name, column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]
Nella query di ricerca puoi usare una o più tabelle, le tabelle sono separate da virgola (,) e la clausola WHERE viene usata per stabilire le condizioni di ricerca.
Il comando SELECT può leggere una o più righe.
Puoi usare l'asterisco (*) per sostituire altri campi, la query SELECT restituirà tutti i campi della tabella.
Puoi utilizzare la clausola WHERE per includere qualsiasi condizione.
Puoi usare l'attributo LIMIT per stabilire il numero di record restituiti.
Puoi utilizzare OFFSET per specificare la quantità di dati di partenza della query SELECT. Di default, l'offset è 0.
Il seguente esempio utilizzerà il comando SQL SELECT per ottenere i dati della tabella MySQL w3codebox_tbl:
Il seguente esempio restituirà tutti i record della tabella w3codebox_tbl:
select * from w3codebox_tbl;
Output dei risultati:
Utilizza la funzione PHP mysqli_query() e il comando SQL SELECT per ottenere dati.
Questa funzione esegue un comando SQL e poi utilizza la funzione PHP mysqli_fetch_array() Per utilizzare o outputtare tutti i dati della query.
La funzione mysqli_fetch_array() recupera una riga dal risultato come array associativo, o array numerico, o entrambi Restituisce un array generato dalle righe del risultato, se non ci sono più righe, restituisce false.
Esempio seguente per leggere tutti i record dalla tabella w3codebox_tbl.
Prova il seguente esempio per visualizzare tutti i record della tabella w3codebox_tbl.
<?php $dbhost = 'localhost'; // Indirizzo del server MySQL $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>基础教程 mysqli_fetch_array 测试</h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo "<tr><td> {$row['w3codebox_id']}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
如下所示输出结果:
Nell'esempio sopra, ogni record letto viene assegnato alla variabile $row e poi stampato ogni valore.
Attenzione:Ricorda se devi utilizzare una variabile in una stringa, metti la variabile tra parentesi graffe.
Nell'esempio sopra, il secondo parametro della funzione PHP mysqli_fetch_array() è MYSQLI_ASSOC, Imposta questo parametro per restituire un array associativo dei risultati della query, puoi utilizzare il nome del campo come indice dell'array.
PHP fornisce un'altra funzione mysqli_fetch_assoc(), questa funzione recupera una riga dal risultato come array associativo. Restituisce un array associativo generato dalle righe del risultato, se non ci sono più righe, restituisce false.
Prova il seguente esempio, che utilizza mysqli_fetch_assoc() La funzione per outputtare tutti i record della tabella w3codebox_tbl:
<?php $dbhost = 'localhost:3306'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>Guida di Base mysqli_fetch_assoc Test</h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_assoc($retval)) { echo "<tr><td> {$row['w3codebox_id']}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
输出结果如下:
你也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,返回数字数组。
以下示例使用 MYSQLI_NUM 参数显示数据表 w3codebox_tbl 的所有记录:
<?php $dbhost = 'localhost:3306'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>基础教程 mysqli_fetch_array 测试</h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo "<tr><td> {$row[0]}</td> ". "<td>{$row[1]} </td> ". "<td>{$row[2]} </td> ". "<td>{$row[3]} </td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
如下所示输出结果:
以上三个示例输出结果都一样。
在我们执行完 SELECT 语句后,释放游标内存是一个很好的习惯。
可以通过 PHP 函数 mysqli_free_result() 来实现内存的释放。
以下示例演示了该函数的使用方法。
尝试以下示例:
<?php $dbhost = 'localhost:3306'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>基础教程 mysqli_fetch_array 测试</h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo "<tr><td> {$row[0]}</td> ". "<td>{$row[1]} </td> ". "<td>{$row[2]} </td> ". "<td>{$row[3]} </td> ". "</tr>"; } echo '</table>'; // 释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>
如下所示输出结果: