この記事では、主に PHP で MySQL データベースを操作する MySQLI 方法を紹介します。必要な友達に参考にしてください。
パフォーマンスが低く、PHP5.0 以降は放棄されます。 MySQLi 永続的な接続、サーバーの負荷を軽減、MySQL のみをサポートMySQL を操作する 3 つの方法。非永続的な接続では、データベースが使用されるたびに新しいプロセスが開かれます。
欠点:
MySQLI メソッド (オブジェクト指向)
1) データベースに接続します
$mysqli = new mysqli(‘host’,‘username’,‘password’,‘database’)
2) SQL ステートメントを実行します3) 結果を取得します
$mysqli -> query($sql);
$result -> fetch_array([MYSQLI_ASSOC]) 一个 $result -> fetch_assoc() 一个 $result -> fetch_all([MYSQLI_ASSOC]) 全部
$mysqli -> close();
<?php // MySQLi增删改例子 // MySQLi方式连接数据库 $mysqli = new mysqli('localhost','root','123456789','test'); // 执行SQL语句 // 使用utf-8编码 $mysqli -> query('set names utf8'); // 插入 //$result = $mysqli -> query("INSERT users(name,money) VALUES('甜筒',4) "); //$result = $mysqli -> query("INSERT users(name,money) VALUES('麦辣鸡腿堡',16) "); // 修改 //$result = $mysqli -> query("UPDATE users SET `name`= '麦旋风' WHERE `id` = 2"); // 删除 //$result = $mysqli -> query("DELETE FROM users WHERE `id` = 5"); //var_dump($result); /*********************查询*****************/ $result = $mysqli -> query("SELECT * FROM users"); // 获取结果集 $data = $result -> fetch_all(MYSQLI_ASSOC); var_dump($data);
索引数组
,添加参数后变成关联数组
トランザクション制御
トランザクションは、複数の論理タスクを 1 つの実行単位 (合計の成功または失敗) に結合するデータベース操作です。
$mysqli -> autocommit(false)
$mysqli -> rollback()
データにエラーがある場合、この方法を使用してデータを復元できます。
$mysqli -> commit()
4) 接続を閉じる
$mysqli -> close()
query() を使用して SQL ステートメントを実行する場合、データベース内の変更は考慮されず、SQL ステートメントが変更されたかどうかのみが考慮されます。間違っている。
$mysqli -> affected_rows
query('set names utf8'); // 开启事务 $mysqli -> autocommit(false); //SQL $sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1"; $sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 11"; // 执行SQL语句 $result = $mysqli -> query($sql1); $r1 = $mysqli -> affected_rows; $result = $mysqli -> query($sql2); $r2 = $mysqli -> affected_rows; if($r1 > 0 && $r2 > 0){ // 提交事务 $mysqli -> commit(); echo '操作成功'; }else{ // 事务回滚 $mysqli -> rollback(); echo '操作失败'; }
前処理
前処理を行うには、まず SQL ステートメントをサーバーに送信し、プリコンパイルを実行します。
クライアントが SQL ステートメントを実行するときは、入力パラメーターをアップロードするだけで済みます。
では、代わりに疑問符を使用します。
2) プリコンパイル済みオブジェクトの作成
$stmt = $mysqli -> prepare($sql)
$stmt -> bind_param('参数类型', 参数1, 参数2...)
パラメータの型の説明:
string-s int-i double-d bool-bパラメータの型はスペースやカンマを使用せずに順番に記述します。たとえば、パラメータ 1 は文字列、パラメータ 2 は次のように記述します。 4 ) 変数バインディング結果セット (このステップはクエリにのみ必要で、他の操作の場合はこのステップをスキップしてください)
$stmt -> bind_result()
$stmt -> execute()
$stmt -> bind_param('si', 参数1, 参数2)
6) レコードをクエリし、PHP プログラムに保存します(クエリ操作はオプション)$stmt->store_result()
詳細な分析7) 各レコードの結果を取得します
$stmt ->fetch()例
query('set names utf8'); // SQL语句 $sql = "SELECT * FROM users WHERE id>? "; // 创建预编译对象 $stmt = $mysqli -> prepare($sql); // 参数绑定 $id = 1; $stmt -> bind_param('i',$id); // 绑定结果集 参数要和表的参数一致 $stmt -> bind_result($id,$name,$money,$age); // 执行SQL语句 $stmt -> execute(); // 执行SQL语句 $stmt->store_result(); // 接收结果集 while($stmt -> fetch()){ $data[] = [ 'id' => $id, 'name' => $name, 'money' => $money ]; } var_dump($data);
PHP 操作データベース: 選択操作 Operation
以上がMySQLI MySQLデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。