php cheatsheet,24.cheatsheet

本文详细介绍了如何使用PDO扩展在PHP中连接到MySQL数据库,包括配置DSN、设置PDO属性和处理异常。展示了如何执行预处理语句进行单选、多选及全选查询,并演示了插入、更新和删除数据的操作。此外,还提到了数据库的导出和导入命令。
摘要由CSDN通过智能技术生成

PDO

连接数据库

/* 封装配置数据 */

$host = 'localhost';

$dbname = 'bshop';

$username = 'root';

$password = 'yo';

$charset = 'utf8'; // 可选

$collate = 'utf8_unicode_ci'; // 可选

$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset"; // 连接语句

$options = [

/* 常用设置 */

PDO::ATTR_CASE => PDO::CASE_NATURAL, /*PDO::CASE_NATURAL | PDO::CASE_LOWER 小写,PDO::CASE_UPPER 大写, */

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, /*是否报错,PDO::ERRMODE_SILENT 只设置错误码,PDO::ERRMODE_WARNING 警告级,如果出错提示警告并继续执行| PDO::ERRMODE_EXCEPTION 异常级,如果出错提示异常并停止执行*/

PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, /* 空值的转换策略 */

PDO::ATTR_STRINGIFY_FETCHES => false, /* 将数字转换为字符串 */

PDO::ATTR_EMULATE_PREPARES => false, /* 模拟语句准备 */

];

/* 连接数据库并实例数据库对象 */

$pdo = new PDO($dsn, $username, $password, $options);

单选

$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email AND status=:status LIMIT 1");

$stmt->execute(['email' => $email, 'status' => $status]);

$user = $stmt->fetch();

多选

$stmt = $pdo->prepare("SELECT * FROM employees WHERE name = :name");

$stmt->execute(['name' => $name]);

foreach ($stmt as $row) {

// do something with $row

}

全选

$news = $pdo->query('SELECT * FROM news')->fetchAll();

插入一条

$row = [

'username' => 'bob',

'email' => 'bob@example.com'

];

$sql = "INSERT INTO users SET username=:username, email=:email;";

$status = $pdo->prepare($sql)->execute($row);

if ($status) {

$lastId = $pdo->lastInsertId();

echo $lastId;

}

插入多条

$rows = [];

$rows[] = [

'username' => 'bob',

'email' => 'bob@example.com'

];

$rows[] = [

'username' => 'max',

'email' => 'max@example.com'

];

$sql = "INSERT INTO users SET username=:username, email=:email;";

$stmt = $pdo->prepare($sql);

foreach ($rows as $row) {

$stmt->execute($row);

}

更新单条

$row = [

'id' => 1,

'username' => 'bob',

'email' => 'bob2@example.com'

];

$sql = "UPDATE users SET username=:username, email=:email WHERE id=:id;";

$status = $pdo->prepare($sql)->execute($row);

更新多条

$row = [

'updated_at' => '2017-01-01 00:00:00'

];

$sql = "UPDATE users SET updated_at=:updated_at";

$pdo->prepare($sql)->execute($row);

$affected = $pdo->rowCount();

删除一行

$where = ['id' => 1];

$pdo->prepare("DELETE FROM users WHERE id=:id")->execute($where);

# 导出数据库

mysqldump -uroot -p bshop > ./xxx/xxx.sql

# 导入数据库

mysql -uroot -p bshop < ./xxx/xxx.sql

.htaccess

Options -MultiViews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ index.php [QSA,L]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值