php实现的pdo公共类定义与用法示例

2025-05-27 0 45

本文实例讲述了php实现的pdo公共类定义与用法。分享给大家供大家参考,具体如下:

db.class.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123
<?php

class db extends \\PDO {

private static $_instance = null;

protected $dbName = '';

protected $dsn;

protected $dbh;

public function __construct($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset='utf8') {

try {

$this->dsn = 'mysql:host=' . $dbHost . ';dbname=' . $dbName;

$this->dbh = new \\PDO($this->dsn, $dbUser, $dbPasswd);

$this->dbh->setAttribute(\\PDO::ATTR_EMULATE_PREPARES, false);

$this->dbh->setAttribute(\\PDO::ATTR_ERRMODE, \\PDO::ERRMODE_EXCEPTION);

$this->dbh->exec('SET character_set_connection='.$dbCharset.';SET character_set_client='.$dbCharset.';SET character_set_results='.$dbCharset);

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public static function getInstance($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset='utf8') {

if (self::$_instance === null) {

self::$_instance = new self($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset);

}

return self::$_instance;

}

public function fetchAll($sql, $params = array()) {

try {

$stm = $this->dbh->prepare($sql);

if ($stm && $stm->execute($params)) {

return $stm->fetchAll(\\PDO::FETCH_ASSOC);

}

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function fetchOne($sql, $params = array()) {

try {

$result = false;

$stm = $this->dbh->prepare($sql);

if ($stm && $stm->execute($params)) {

$result = $stm->fetch(\\PDO::FETCH_ASSOC);

}

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function fetchColumn($sql, $params = array()) {

$result = '';

try {

$stm = $this->dbh->prepare($sql);

if ($stm && $stm->execute($params)) {

$result = $stm->fetchColumn();

}

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function insert($table, $params = array(), $returnLastId = true) {

$_implode_field = '';

$fields = array_keys($params);

$_implode_field = implode(',', $fields);

$_implode_value = '';

foreach ($fields as $value) {

$_implode_value .= ':'. $value.',';

}

$_implode_value = trim($_implode_value, ',');

$sql = 'INSERT INTO ' . $table . '(' . $_implode_field . ') VALUES ('.$_implode_value.')';

try {

$stm = $this->dbh->prepare($sql);

$result = $stm->execute($params);

if ( $returnLastId ) {

$result = $this->dbh->lastInsertId();

}

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function update($table, $params = array(), $where = null) {

$_implode_field = '';

$_implode_field_arr = array();

if ( empty($where) ) {

return false;

}

$fields = array_keys($params);

foreach ($fields as $key) {

$_implode_field_arr[] = $key . '=' . ':'.$key;

}

$_implode_field = implode(',', $_implode_field_arr);

$sql = 'UPDATE ' . $table . ' SET ' . $_implode_field . ' WHERE ' . $where;

try {

$stm = $this->dbh->prepare($sql);

$result = $stm->execute($params);

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function delete($sql, $params = array()) {

try {

$stm = $this->dbh->prepare($sql);

$result = $stm->execute($params);

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

public function exec($sql, $params = array()) {

try {

$stm = $this->dbh->prepare($sql);

$result = $stm->execute($params);

return $result;

} catch (Exception $e) {

$this->outputError($e->getMessage());

}

}

private function outputError($strErrMsg) {

throw new Exception("MySQL Error: " . $strErrMsg);

}

public function __destruct() {

$this->dbh = null;

}

}

实例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49
<?php

require_once './db.class.php';

$pdo = db::getInstance('127.0.0.1', 'root', '111111', 'php_cms');

$sql = "select id, title1 from cms_wz where id = :id limit 1";

$parame = array('id' => 12,);

$res = $pdo->fetchOne($sql, $parame);

var_dump($res);

$sql = 'SELECT * FROM cms_link';

$result = $db->fetchAll($sql);

print_r($result);

//查询记录数量

$sql = 'SELECT COUNT(*) FROM cms_link';

$count = $db->fetchColumn($sql);

echo $count;

$data = array(

'siteid' => 1,

'linktype' => 1,

'name' => 'google',

'url' => 'http://www.google.com',

'listorder' => 0,

'elite' => 0,

'passed' => 1,

'addtime' => time()

);

$lastInsertId = $db->insert('cms_link', $data);

echo $lastInsertId;

//用 try

try {

$result = $pdo->insert('news', $essay);

} catch (Exception $e) {

error_log($e->getMessage());

error_log($e->getMessage() . ' in ' . __FILE__ . ' on line ' . __LINE__);

saveLog('url文章 : ' . $essay['link'] . ' 数据插入失败<br>');

continue;

}

$data = array(

'siteid' => 1,

'linktype' => 1,

'name' => 'google',

'url' => 'http://www.google.com',

'listorder' => 0,

'elite' => 0,

'passed' => 1,

'addtime' => time()

);

$db->insert('cms_link', $data);

$sql = 'DELETE FROM cms_link WHERE linkid=4';

$result = $db->delete($sql);

var_dump($result);

希望本文所述对大家PHP程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php实现的pdo公共类定义与用法示例 https://www.kuaiidc.com/71990.html

相关文章

发表评论
暂无评论