Maison > développement back-end > tutoriel php > Méthode PDO d'exploitation de la base de données MySQL en php

Méthode PDO d'exploitation de la base de données MySQL en php

不言
Libérer: 2023-03-29 21:52:02
original
1481 Les gens l'ont consulté

Cet article présente principalement la méthode PDO d'exploitation de la base de données MySQL avec PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Utilisation de base

1) Connectez-vous à la base de données

$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
Copier après la connexion
2) Exécutez l'instruction SQL

$pdo -> query()    针对返回有结果的操作    适用于SELECT

$pdo -> exec()     针对没有返回结果的操作  适用于增删改
Copier après la connexion
3) Obtenez l'ensemble de résultats (opération de requête exclusive)

Le

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

$stmt -> fetchAll($mode)   获取所有数据
Copier après la connexion
mode peut sélectionner PDO::FETCH_ASSOC, et le résultat devient un

tableau associatif.

Instance

<?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);
Copier après la connexion
Contrôle des transactions

1) Transaction ouverte

$pdo -> beginTransaction()
Copier après la connexion
2) Annulation de la transaction

$pdo -> rollback()
Copier après la connexion
3) Soumission de transaction

$pdo -> commit()
Copier après la connexion
4) Soumission automatique

$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
Copier après la connexion
Instance

 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);
Copier après la connexion
Prétraitement

1) $sql = « ??? »

Les paramètres dans VALUE de l'instruction SQL sont remplacés par des points d'interrogation.

2) Créer un objet précompilé

$pdo -> prepare($sql)
Copier après la connexion
3) Affectation des paramètres

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

$stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)
Copier après la connexion

$stmt -> Explication détaillée de bindParam :

$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);
Copier après la connexion

$stmt -> Explication détaillée de bindValue

Après avoir utilisé bindValue pour lier une variable, même si la valeur de la variable est modifiée avant l'exécution de l'exécution, le résultat ne sera pas le même.

Veuillez voir ici pour plus de détails et écrivez le contenu du lien ici

4) Exécutez le code

$stmt -> execute()
Copier après la connexion
5) Obtenez les résultats (opération de requête exclusive)

Le

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

$stmt -> fetchAll($mode)   获取所有结果
Copier après la connexion
mode peut sélectionner PDO::FETCH_ASSOC, et le résultat devient un

tableau associatif.

Exemple

 exec("set names utf8");


// SQL语句
$sql = "SELECT * FROM users WHERE id > :num ";

// 创建预编译对象
$stmt = $pdo -> prepare($sql);

// 参数绑定
$num = 3;
$stmt -> bindParam(":num",$num);

// 执行SQL语句
$stmt -> execute();

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

var_dump($data);
Copier après la connexion
Recommandations associées :

Méthode MySQL d'exploitation de la base de données MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal