English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

查询数据MySQL

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.

Sintassi

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.

Ottieni i dati tramite il prompt dei comandi

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 uno script PHP per ottenere dati

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.

Ottieni dati utilizzando mysqli_fetch_array MYSQLI_ASSOC parametro:

<?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:

Utilizzare mysqli_fetch_assoc per ottenere dati:

<?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 的所有记录:

使用 mysqli_fetch_array MYSQLI_NUM 参数获取数据:

<?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() 来实现内存的释放。

以下示例演示了该函数的使用方法。

在线示例

尝试以下示例:

使用 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);
?>

如下所示输出结果: