ホームページ > バックエンド開発 > PHPチュートリアル > PDOでMySQLデータベースを操作する方法

PDOでMySQLデータベースを操作する方法

不言
リリース: 2023-03-29 21:52:02
オリジナル
1480 人が閲覧しました

この記事では、主に PHP で MySQL データベースを操作する PDO 方法を紹介します。これは、必要な友人に参考にしていただけるようになります。

1) データベースに接続します。
$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
ログイン後にコピー

2) SQL文を実行
$pdo -> query()    针对返回有结果的操作    适用于SELECT

$pdo -> exec()     针对没有返回结果的操作  适用于增删改
ログイン後にコピー

3) 結果セットを取得(クエリ操作のみ)

$stmt -> fetch($mode)      获取一条数据

$stmt -> fetchAll($mode)   获取所有数据
ログイン後にコピー

modeはPDO::FETCH_ASSOCを選択可能で、結果は

連想配列

となります。

インスタンス

<?php

// PDO操作数据库例子(查询)

header("content-type:text/html;charset=utf-8");

// 连接数据库
$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,&#39;root&#39;,&#39;123456789&#39;);


/*********** 执行SQL语句  *************/

// 设置字符集
$pdo -> exec("set names utf8");

$sql = "SELECT * FROM users";
$stmt = $pdo -> query($sql);

// 获取结果集
$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);

var_dump($data);
ログイン後にコピー

トランザクション制御

1) オープントランザクション

$pdo -> beginTransaction()
ログイン後にコピー

2)トランザクションロールバック
$pdo -> rollback()
ログイン後にコピー

3)トランザクション送信

$pdo -> commit()
ログイン後にコピー

4)自動送信

$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
ログイン後にコピー

インスタンス

 exec("set names utf8");

// 开启事务
$pdo -> beginTransaction();

// SQL语句
$sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 ";
$r1 = $pdo -> exec($sql1);

$sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 ";
$r2 = $pdo -> exec($sql2);

// 做判断
if($r1 > 0 && $r2 > 0){
    $pdo -> commit();
    echo '操作成功';
}else{
    $pdo -> rollback();
    echo '操作失败';
}

$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);
ログイン後にコピー

前処理

1 ) $sql = “???”

SQL文のVALUEのパラメータは疑問符に置き換えられます。

2) プリコンパイル済みオブジェクトの作成

$pdo -> prepare($sql)
ログイン後にコピー

3) パラメータの割り当て

$stmt ->bindParamの詳細説明:

$stmt -> bindParam(参数位置 | 参数伪名, 变量名(需要有值)) 

$stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)
ログイン後にコピー

$stmt ->bindValueを使用してバインドした後変数の場合、execute実行前にこの変数の値を変更しても結果は変わりません。

詳細はこちらを参照してリンク内容をここに書いてください

4) コードを実行

$sql = "UPDATE users SET `money`=100 WHERE id = :num ";

// 注意,这里必须先给$num赋值
$num = 3;
$stmt -> bindParam(":num",$num);


另一种形式(占位符变成问号)
$sql = "UPDATE users SET `money`=100 WHERE id = ? ";

// 注意,这里必须先给$num赋值
$num = 3;
$stmt -> bindParam(":num",$num);
ログイン後にコピー

5) 結果を取得(クエリ操作のみ)

$stmt -> execute()
ログイン後にコピー

modeはPDO::FETCH_ASSOCを選択でき、結果は

になります連想配列

$stmt -> fetch($mode)      获取一个结果

$stmt -> fetchAll($mode)   获取所有结果
ログイン後にコピー
関連する推奨事項:

MySQLMySQL データベースを操作する方法

以上がPDOでMySQLデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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