phpでのデータベースクエリ操作
おすすめのmysqlビデオチュートリアル: "mysqlチュートリアル"
* 1. クエリ操作
* 2. 関係する3つの関数:
* 2-1. $sql): SQL文を実行して結果セットを返す
* 2-2. mysqli_errno($db): 最後の関数実行のエラーコードを返す
* 2-3. mysqli_error($db): エラーを返す最後の関数実行のメッセージ
* 2-4. mysqli_num_rows($res): 結果セット内のレコードの数を返します
* 2-5. mysqli_fetch_row($res): レコードをインデックス配列として返します
* 2- 5. mysqli_fetch_assoc($res): レコードを連想配列として返します
* 2-5. mysqli_fetch_array($res,MYSQLI_NUM): レコードをインデックス配列として返します
* 2-5. res,MYSQLI_ASSOC): レコードを連想配列として返します
* 2-5. mysqli_fetch_array($res,MYSQLI_BOTH): レコードをインデックスとリレーションシップを持つ配列として返します
* 2-5.レコードをオブジェクトとして返します
* mysqli_free_result($result);
* 2-4. mysqli_close($db): 現在のデータ接続を閉じます
* 3. クエリ手順:
* 3-1.データベース
* 3-2. SQL ステートメントの準備
* 3-3. クエリの実行
* 3-5. 結果セットを返す
* 3. -5-1. 挿入/更新/削除の場合: 影響を受けるレコードの数を返します
* 3-6. データベース接続を閉じます
//1. 関数はありません。後に括弧を追加する必要はありません
define ('DB_HOST', 'localhost'); define ('DB_USER', 'root'); define ('DB_PASS', 'root'); define ('DB_NAME', 'php'); define ('DB_CHAR', 'utf8'); $db = @mysqli_connect(DB_HOST, DB_USER, DB_PASS); if (mysqli_connect_errno($db)) { exit('连接失败'.mysqli_connect_error($db)); } mysqli_select_db($db, DB_NAME); mysqli_set_charset($db, DB_CHAR);
//2. SQL ステートメントを準備します
$sql = "SELECT name,salary FROM staff"; $sql = "SELECT name AS 姓名,salary AS 工资 FROM staff WHERE age>90";
//3. クエリを実行します。成功した場合は結果セット オブジェクトが返されます。結果を検出します。
//結果セットが存在する場合
$result = mysqli_query($db, $sql); var_dump($result);die();
//5.結果セットを処理する
//5- 1:インデックス部分を取得する
if (false != $result) { //这是写只是语义性更强 //如果结果集中存在记录,至少有一条 // if (mysqli_num_rows($result) > 0) { //mysqli_affected_rows($db)也可以完成同样的检测工作,注意参数是连接对象$db,不是结果集对象 if (mysqli_affected_rows($db) > 0) { // echo '共计:'.mysqli_num_rows($result).'条记录<br>'; echo '共计:'.mysqli_affected_rows($db).'条记录~~<br>';
//インデックス部分を取得するためのショートカットメソッド
while($row = mysqli_fetch_array($result, MYSQLI_NUM)){
// 5-2: 関連部分を取得する
while($row = mysqli_fetch_row($result)){
//関連部分を取得する簡単な方法
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
//5-3: インデックス+関連付け
while($row = mysqli_fetch_assoc($result)){
//5-4: インデックス+関連付けを取得する簡単な方法デフォルト値である 2 番目のパラメータを渡しません
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
//5-4: オブジェクトの方法で
while($row = mysqli_fetch_array($result)){
//5. 結果セットを解放します (select のみ)
while($row = mysqli_fetch_object($result)){ // var_export($row);//以字符串方式表示查询结查 //如果是对象,可以用指向符来访问 echo $row->name.'--'.$row->salary; echo '<hr>'; //以变量方式表示,表示的内容更加完整丰富 // var_dump($row); } } else { echo '没有符合条件的记录'; } //查询失败的处理方式 } else { //必须要用exit()或die()终止脚本执行,否则后面的语句还会执行并会报错 exit('查询失败'.mysqli_errno($db).':'.mysqli_error($db)); }
//6。データベース接続を閉じます
mysqli_free_result($result);