PHP は 5.5 以降、mysql 拡張機能を完全に廃止し、代わりに MySQLI または PDO を使用することを公式に推奨しています。この記事では主に mysqli のいくつかの基本操作について説明します。 mysqliの書き方にはオブジェクト型と関数型の2種類がありますが、以下では関数型の書き方のみを示します。
#データベース接続
最初にデータベースに接続する必要があります。データに接続する前に、通常、データベース アカウント、パスワード、ポート番号、データベース名を準備する必要があります。 ネットワーク上の理由などにより、データベースに接続できない場合がよくあるため、接続障害への対応が必要です。<?php // 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } // ...一些数据库操作 // 关闭数据库资源 mysqli_close($mysqli);
文字セットを設定します
文字セットを設定するには、mysqli_set_charset() を使用します;文字セット 現在、ほとんどの場合、 4 バイト長の文字をサポートしているため、utf8mb4 を使用します。一部の絵文字をサポートしています。もちろん、4 バイト文字をサポートする必要がない場合は、より多くのスペースがある utf8 を使用することを選択できます。mysqli_set_chartset($mysqli, 'utf8mb4');
データベースの再選択
データベースに接続した後、データベースを再選択することもできます。mysqli_select_db($mysqli, '数据库名');
CURD 操作
mysqli_query(): データベースに対して操作を実行します。DDL、DQL、および DML がすべてサポートされています。 mysqli_affected_rows(): 影響を受けるレコードの行数を取得します。#新しいデータ操作
mysqli_query($mysqli, "INSERT INTO users(username, age, sex) VALUES('周杰伦', 35, '男'), ('谢霆锋', 35, '男')" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases insert error:' . mysqli_error($mysqli)); }
データ操作の変更 ここで注意すべき点があります。mysqli_affected_rows によって返される値は 0 です。前回とまったく同じ情報が更新されますが、これは非常に一般的です。たとえば、変更する場合、変更ボタンを複数回連続してクリックします。ただし、プログラムコードに問題があるわけではありません。したがって、新規追加とは異なり、0 を返すことも成功ステータスとなるはずです。
mysqli_query($mysqli, "UPDATE users SET age=40 WHERE user_id = 1" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases update error:' . mysqli_error($mysqli)); }
データ操作の削除
注: 変更操作と削除操作では、where 条件を追加する必要があります。 そうしないと、テーブル全体のデータが変更され、悲惨な結果になります (データベースを削除して逃げてくださいo(╯□╰)o)。 mysqli_query($mysqli,
"Delete FROM users WHERE user_id = 100"
);
if (mysqli_affected_rows($mysqli) <= 0) {
throw new Exception('databases delete error:'
. mysqli_error($mysqli));
}
クエリ操作mysqli_query がクエリ ステートメントを実行すると、この関数は mysqli_result 結果セットを返します。
mysqli_fetch_all() は結果セットからすべてのデータを取得します。この関数の 2 番目のパラメーターでは、返されるデータの形式を指定できます。
// 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } mysqli_set_charset($mysqli, 'utf8mb4'); $result = mysqli_query($mysqli, "SELECT * FROM users" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases select error:' . mysqli_error($mysqli)); } $users = mysqli_fetch_all($result, MYSQLI_ASSOC); // 销毁结果集资源 mysqli_free_result($result); // 关闭数据库资源 mysqli_close($mysqli);上記は Mysqli の基本操作であり、個人的な実際の学習と開発の概要です。議論を歓迎します。
以上がMysqli-CURDの基本操作学習と開発まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。