php mysql cursor_PHP中的MySQL使用--基于PDO

一、准备活动

PHP Data Object 数据库访问抽象层 统一各种数据库访问接口

1.查看PHP的配置信息

调用一个函数即可输出一个界面。默认PDO是支持MySQL的

AAffA0nNPuCLAAAAAElFTkSuQmCC

phpinfo();

如果不支持,在php.ini中打开选项即可

AAffA0nNPuCLAAAAAElFTkSuQmCC

2.连接数据库

2.1:方式1 写死在代码里

|-- ---------------

$dsn = 'mysql:host=localhost;dbname=datatype';//数据源

$user = 'root';

$pwd = 'xxxxx';

$conn = new PDO($dsn, $user, $pwd);

var_dump($conn);//object(PDO)#1 (0) { }

复制代码

2.2:方式2 写一个文件决定数据库

AAffA0nNPuCLAAAAAElFTkSuQmCC

---->[pdo/pdo_conn.php]------------------

$path = __DIR__.'\config.txt';

$dsn = 'uri:file://' . $path . '';//数据源

$user = 'root';

$pwd = 'xxxxx';

$conn = new PDO($dsn, $user, $pwd);

var_dump($conn);//object(PDO)#1 (0) { }

---->[pdo/config.txt]------------------

mysql:dbname=datatype;host=localhost

3.执行语句exec() 创建表

不支持查询操作,返回受影响的行数。数据表使用此文中的pic表:MySQL指南之SQL语句基础

try {

$dsn = 'mysql:host=localhost;dbname=datatype';//数据源

$user = 'root';

$pwd = 'toly';

$conn = new PDO($dsn, $user, $pwd);

//---------------------建表--------------------------

$sql_create_table = <<

CREATE TABLE IF NOT EXISTS php_pic(

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

pic_path VARCHAR(120) NOT NULL,

pic_length INT UNSIGNED DEFAULT 0,

pic_mime TINYINT UNSIGNED,

pic_width SMALLINT UNSIGNED,

pic_height SMALLINT UNSIGNED

);

EOT;

$len = $conn->exec($sql_create_table);

echo $len;//0

} catch (Exception $e) {

$e->getMessage();

}

mysql> SHOW TABLES;

+--------------------+

| Tables_in_datatype |

+--------------------+

| php_pic |

+--------------------+

mysql> DESC php_pic;

+------------+----------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+------------+----------------------+------+-----+---------+----------------+

| id | int(10) unsigned | NO | PRI | NULL | auto_increment |

| pic_path | varchar(120) | NO | | NULL | |

| pic_length | int(10) unsigned | YES | | 0 | |

| pic_mime | tinyint(3) unsigned | YES | | NULL | |

| pic_width | smallint(5) unsigned | YES | | NULL | |

| pic_height | smallint(5) unsigned | YES | | NULL | |

+------------+----------------------+------+-----+---------+----------------+

二、增删改查

1.增加记录

//---------------------插入记录--------------------------

$sql_insert = <<

INSERT INTO pic(pic_path,pic_length,pic_mime,pic_width,pic_height) VALUES

('30000X20000.jpg',116342886,1,30000,20000),

('3000X2000.jpg',3404969,1,3000,2000),

('300X200.jpg',99097,1,300,200),

('30X20.jpg',10158,1,30,20),

('6dc9e8455c47d964e1a8a4ef04cf9477.jpg',236254,1,974,319);

EOT;

$len = $conn->exec($sql_insert);

echo $len;//5

---->[命令行]------------------

mysql> SELECT * FROM php_pic;

+----+--------------------------------------+------------+----------+-----------+------------+

| id | pic_path | pic_length | pic_mime | pic_width | pic_height |

+----+--------------------------------------+------------+----------+-----------+------------+

| 1 | 30000X20000.jpg | 116342886 | 1 | 30000 | 20000 |

| 2 | 3000X2000.jpg | 3404969 | 1 | 3000 | 2000 |

| 3 | 300X200.jpg | 99097 | 1 | 300 | 200 |

| 4 | 30X20.jpg | 10158 | 1 | 30 | 20 |

| 5 | 6dc9e8455c47d964e1a8a4ef04cf9477.jpg | 236254 | 1 | 974 | 319 |

+----+--------------------------------------+------------+----------+-----------+------------+

2.修改记录

//---------------------修改记录--------------------------

$sql_update = <<

UPDATE php_pic SET pic_height=10086,pic_width=2333

WHERE id =5;

EOT;

$len = $conn->exec($sql_update);//1

---->[命令行]------------------

mysql> SELECT * FROM php_pic;

+----+--------------------------------------+------------+----------+-----------+------------+

| id | pic_path | pic_length | pic_mime | pic_width | pic_height |

+----+--------------------------------------+------------+----------+-----------+------------+

| 1 | 30000X20000.jpg | 116342886 | 1 | 30000 | 20000 |

| 2 | 3000X2000.jpg | 3404969 | 1 | 3000 | 2000 |

| 3 | 300X200.jpg | 99097 | 1 | 300 | 200 |

| 4 | 30X20.jpg | 10158 | 1 | 30 | 20 |

| 5 | 6dc9e8455c47d964e1a8a4ef04cf9477.jpg | 236254 | 1 | 2333 | 10086 |

+----+--------------------------------------+------------+----------+-----------+------------+

3.删除记录

//---------------------删除记录--------------------------

$sql_delete = <<

DELETE FROM php_pic

WHERE pic_width> 2500;

EOT;

$len = $conn->exec($sql_delete);//2

echo $len;

---->[命令行]------------------

mysql> SELECT * FROM php_pic;

+----+--------------------------------------+------------+----------+-----------+------------+

| id | pic_path | pic_length | pic_mime | pic_width | pic_height |

+----+--------------------------------------+------------+----------+-----------+------------+

| 3 | 300X200.jpg | 99097 | 1 | 300 | 200 |

| 4 | 30X20.jpg | 10158 | 1 | 30 | 20 |

| 5 | 6dc9e8455c47d964e1a8a4ef04cf9477.jpg | 236254 | 1 | 2333 | 10086 |

+----+--------------------------------------+------------+----------+-----------+------------+

关于错误信息的获取

AAffA0nNPuCLAAAAAElFTkSuQmCC

$sql_delete = <<

DELETE FROM php_picXXX

WHERE pic_width> 2500;

EOT;

$len = $conn->exec($sql_delete);//2

if ($len === false) {

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值