Mysqli-CURDの基本操作学習と開発まとめ

齐天大圣
リリース: 2023-04-08 15:50:01
オリジナル
1554 人が閲覧しました

PHP は 5.5 以降、mysql 拡張機能を完全に廃止し、代わりに MySQLI または PDO を使用することを公式に推奨しています。この記事では主に mysqli のいくつかの基本操作について説明します。 mysqliの書き方にはオブジェクト型と関数型の2種類がありますが、以下では関数型の書き方のみを示します。

#データベース接続

最初にデータベースに接続する必要があります。データに接続する前に、通常、データベース アカウント、パスワード、ポート番号、データベース名を準備する必要があります。

ネットワーク上の理由などにより、データベースに接続できない場合がよくあるため、接続障害への対応が必要です。

<?php
// 数据库连接
$mysqli = mysqli_connect(
   &#39;localhost&#39;,
   &#39;root&#39;,
   &#39;&#39;,
   &#39;test&#39;
);

if (mysqli_connect_errno()) {
   throw new Exception(&#39;databases connect error:&#39;
       .mysqli_connect_error());
}

// ...一些数据库操作
// 关闭数据库资源
mysqli_close($mysqli);
ログイン後にコピー

文字セットを設定します

文字セットを設定するには、mysqli_set_charset() を使用します;

文字セット 現在、ほとんどの場合、 4 バイト長の文字をサポートしているため、utf8mb4 を使用します。一部の絵文字をサポートしています。もちろん、4 バイト文字をサポートする必要がない場合は、より多くのスペースがある utf8 を使用することを選択できます。

mysqli_set_chartset($mysqli, &#39;utf8mb4&#39;);
ログイン後にコピー

データベースの再選択

データベースに接続した後、データベースを再選択することもできます。

mysqli_select_db($mysqli, &#39;数据库名&#39;);
ログイン後にコピー

CURD 操作

mysqli_query(): データベースに対して操作を実行します。DDL、DQL、および DML がすべてサポートされています。

mysqli_affected_rows(): 影響を受けるレコードの行数を取得します。

#新しいデータ操作

mysqli_query($mysqli,
   "INSERT INTO users(username, age, sex)
               VALUES(&#39;周杰伦&#39;, 35, &#39;男&#39;),
                      (&#39;谢霆锋&#39;, 35, &#39;男&#39;)"
);

if (mysqli_affected_rows($mysqli) <= 0) {
   throw new Exception(&#39;databases insert error:&#39;
       . 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(&#39;databases update error:&#39;
       . 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(&#39;databases delete error:&#39;
       . mysqli_error($mysqli));
}
ログイン後にコピー

クエリ操作mysqli_query がクエリ ステートメントを実行すると、この関数は mysqli_result 結果セットを返します。

mysqli_fetch_all() は結果セットからすべてのデータを取得します。この関数の 2 番目のパラメーターでは、返されるデータの形式を指定できます。

    MYSQLI_NUM: インデックス配列を返します。
  • MYSQLI_ASSOC: 連想配列を返します。
  • # #MYSQLI_BOTH : インデックス配列と連想配列の両方があります。
  • さらに、結果セットに対する操作が完了した後は、結果セットのリソースを忘れずに破棄することに注意してください。
  • // 数据库连接
    $mysqli = mysqli_connect(
       &#39;localhost&#39;,
       &#39;root&#39;,
       &#39;&#39;,
       &#39;test&#39;
    );
    if (mysqli_connect_errno()) {
       throw new Exception(&#39;databases connect error:&#39;
           .mysqli_connect_error());
    }
    mysqli_set_charset($mysqli, &#39;utf8mb4&#39;);
    $result = mysqli_query($mysqli,
       "SELECT * FROM users"
    );
    if (mysqli_affected_rows($mysqli) < 0) {
       throw new Exception(&#39;databases select error:&#39;
           . mysqli_error($mysqli));
    }
    $users = mysqli_fetch_all($result, MYSQLI_ASSOC);
    // 销毁结果集资源
    mysqli_free_result($result);
    // 关闭数据库资源
    mysqli_close($mysqli);
    ログイン後にコピー
    上記は Mysqli の基本操作であり、個人的な実際の学習と開発の概要です。議論を歓迎します。

    以上がMysqli-CURDの基本操作学習と開発まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート