PHP MySQL のデータ読み込みはデータベース操作において重要な役割を果たします。この記事ではデータ読み込みの操作について詳しく説明します。
MySQL データベースからデータを読み取ります
SELECT ステートメントは、データ テーブルからデータを読み取るために使用されます:
SELECT column_name(s) FROM table_name
* 記号を使用して、すべてのデータ テーブルのフィールドを読み取ることができます:
SELECT * FROM table_name
SQL について詳しくは、SQL チュートリアルをご覧ください。
MySQLi の使用
次の例では、myDB データベースの MyGuests テーブルから id、firstname、lastname 列のデータを読み取り、ページに表示します。
Example (MySQLi - オブジェクト指向)
1 2 3 4 5 6 7 8 9 | <?php $servername = "localhost" ; $username = "username" ; $password = "password" ; $dbname = "myDB" ;
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();?>
|
ログイン後にコピー
上記のコードは次のように分析されます:
まず、MyGuests データ テーブルから 3 つのフィールド id、firstname、lastname を読み取る SQL ステートメントを設定します。次に、変更した SQL ステートメントを使用してデータベースから結果セットを取得し、それをコピーした変数 $result に割り当てます。
関数 num_rows() は返されるデータを決定します。
複数のデータが返された場合、関数 fetch_assoc() は結合されたセットを連想配列に入れてループで出力します。 while() は結果セットをループアウトし、id、firstname、lastname の 3 つのフィールド値を出力します。
次の例では、MySQLi のプロセス指向のアプローチを使用しており、その効果は上記のコードと似ています:
例 (MySQLi - プロセス指向)
1 2 3 4 5 6 7 8 9 10 | <?php $servername = "localhost" ; $username = "username" ; $password = "password" ; $dbname = "myDB" ;
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 );?>
|
ログイン後にコピー
PDO の使用 (+ 前処理)
次の例では、準備されたステートメントを使用します。
MyGuests テーブルで id、firstname、lastname フィールドを選択し、HTML テーブルに配置しました:
例 (PDO)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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>" ;?>
|
ログイン後にコピー
この記事では、データベースの読み取り操作と関連知識、その他の学習教材について説明します。php に注意してください。注目の中国サイト。
関連する推奨事項:
PHP を使用して電子メールを送信する方法
PHP Cookie 関連の知識の理解と使用
PHP セッション キャッシュに関する関連知識の理解と使用
以上がPHP MySQL の操作とデータの読み取り方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。