English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai come leggere record da un tavolo MySQL in base a condizioni specifiche utilizzando PHP.
WHERELa clausola viene utilizzata solo per estrarre quei record che soddisfano le condizioni specificate.
La sintassi di base della clausola WHERE può essere fornita nel modo seguente:
SELECT column_name(s) FROM table_name WHERE column_name operator value
Usiamo la clausola WHERE dell'istruzione SELECT per eseguire una query SQL, quindi passiamola alla funzione mysqli_query() di PHP per ottenere i dati filtrati.
Supponiamo che nel database demo ci sia una tabella persons con i seguenti record:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
Il seguente codice PHPpersonsLeggi tutte le righe dalla tabella dove first_name = 'john':
<?php /* Tentativo di connessione al server MySQL. Supponiamo che MySQL sia in esecuzione. Server con impostazioni predefinite (utente senza password "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //Controlla la connessione if($link === false){ die("Errore: impossibile connettersi. " . mysqli_connect_error()); } //尝试选择查询执行 $sql = "SELECT * FROM persons WHERE first_name='john'"; if($result = mysqli_query($link, $sql)){ if(mysqli_num_rows($result) > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //Chiudi il set di risultati mysqli_free_result($result); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "Errore: impossibile eseguire $sql. " . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php /* Tentativo di connessione al server MySQL. Supponiamo che MySQL sia in esecuzione. Server con impostazioni predefinite (utente senza password "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Controlla la connessione if($mysqli === false){ die("Errore: impossibile connettersi. " . $mysqli->connect_error); } //尝试选择查询执行 $sql = "SELECT * FROM persons WHERE first_name='john'"; if($result = $mysqli->query($sql)){ if($result->num_rows > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch_array()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 $result->free(); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "Errore: impossibile eseguire $sql. " . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php /* Tentativo di connessione al server MySQL. Supponiamo che MySQL sia in esecuzione. Server con impostazioni predefinite (utente senza password "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //Imposta il modello di errore PDO su eccezione $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。 " . $e->getMessage()); } //尝试选择查询执行 try{ $sql = "SELECT * FROM persons WHERE first_name='john'"; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 unset($result); } else{ echo "找不到与您的查询匹配的记录。"; } } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
过滤后,结果集将如下所示:
+----+------------+-----------+---------------------+ | id | first_name | last_name | email | +----+------------+-----------+---------------------+ | 2 | John | Rambo | [email protected] | | 4 | John | Carter | [email protected] | +----+------------+-----------+---------------------+