簡単なコードや検証コードなど、軽量なものを書くときに使っているコードをサンプルとして回答しておきます。
php
1 <?php
2 3 * index.php
4
5 require 'common.php' ;
6
7 $db = DB :: getInstance ( ) ;
8
9 $name = filter_input ( INPUT_POST , 'name' ) ;
10 $sql = 'SELECT * FROM table WHERE name = :name' ;
11 $params = [
12 ':name' => $name
13 ] ;
14 $rows = $db -> select ( $sql , $params , 0 , 10 ) ;
15 ?>
16 <! DOCTYPE HTML >
17 < html lang = " ja " >
18 < head >
19 < meta charset = " UTF-8 " >
20 < title > </ title >
21 </ head >
22 < body >
23 < div >
24 <?php if ( 0 < count ( $rows ) ) : ?>
25 < table >
26 <?php foreach ( $rows as $row ) : ?>
27 < tr >
28 < td > <?= h ( $row [ 'id' ] ) ; ?> </ td >
29 </ tr >
30 <?php endforeach ; ?>
31 </ table >
32 <?php else : ?>
33 < div > 検索しましたが見つかりませんでした。 </ div >
34 <?php endif ; ?>
35 </ div >
36 </ body >
37 </ html >
php
1 <?php
2
3 4 * common.php
5
6 require 'config.php' ;
7
8 9 * エスケープ
10 11 12
13 function h ( $string )
14 {
15 return htmlspecialchars ( $string , ENT_QUOTES , 'utf-8' ) ;
16 }
17
18 19 * autoload
20 21
22 function autoload ( $className )
23 {
24 $filename = sprintf ( '%s.php' , $className ) ;
25 require $filename ;
26 }
27
28 spl_autoload_register ( 'autoload' ) ;
php
1 <?php
3 5
6 8
9 define ( 'DB_HOST' , 'localhost' ) ;
10 define ( 'DB_NAME' , 'sample' ) ;
11 define ( 'DB_USER' , 'root' ) ;
12 define ( 'DB_PASSWORD' , 'password' ) ;
php
1 <?php
2
3 4 * DB.php
5
6 class DB
7 {
8
9 private static $instance = null ;
10 private $pdo = null ;
11
12 13 * getInstance
14 15
16 public static function getInstance ( )
17 {
18 if ( is_null ( self :: $instance ) ) {
19 self :: $instance = new self ( ) ;
20 }
21 return self :: $instance ;
22 }
23
24 25 * clone
26 27
28 final public function __clone ( )
29 {
30 throw new Exception ( "this instance is singleton class." ) ;
31 }
32
33 34 * コンストラクタ
35
36 private function __construct ( )
37 {
38 $options = [
39 PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION
40 , PDO :: ATTR_DEFAULT_FETCH_MODE => PDO :: FETCH_ASSOC
41 ] ;
42
43 $dsn = sprintf ( 'mysql:host=%s;dbname=%s;charset=utf8'
44 , constant ( 'DB_HOST' )
45 , constant ( 'DB_NAME' )
46 ) ;
47
48 $this -> pdo = new PDO ( $dsn
49 , constant ( 'DB_USER' )
50 , constant ( 'DB_PASSWORD' )
51 , $options
52 ) ;
53 }
54
55 56 * トランザクション
57
58 public function transaction ( )
59 {
60 if ( ! $this -> pdo -> inTransaction ( ) ) {
61 $this -> pdo -> beginTransaction ( ) ;
62 }
63 }
64
65 66 * ロールバック
67
68 public function rollback ( )
69 {
70 if ( $this -> pdo -> inTransaction ( ) ) {
71 $this -> pdo -> rollBack ( ) ;
72 }
73 }
74
75 76 * コミット
77
78 public function commit ( )
79 {
80 if ( $this -> pdo -> inTransaction ( ) ) {
81 $this -> pdo -> commit ( ) ;
82 }
83 }
84
85 86 * SELECT
87 88 89 90 91 92
93 public function select ( $sql , array $params = [ ] , $start = 0 , $limit = null )
94 {
95 $sql = trim ( $sql ) ;
96 if ( ! is_null ( $limit ) && 0 < $limit ) {
97 $sql .= sprintf ( ' LIMIT %d offset %d' , $limit , $start ) ;
98 }
99 $stmt = $this -> pdo -> prepare ( $sql ) ;
100 $stmt -> execute ( $params ) ;
101 return $stmt -> fetchAll ( ) ;
102 }
103
104 105 * UPDATE
106 107 108 109
110 public function update ( $sql , array $params = [ ] )
111 {
112 $stmt = $this -> pdo -> prepare ( $sql ) ;
113 $stmt -> execute ( $params ) ;
114 return $stmt -> rowCount ( ) ;
115 }
116
117 118 * INSERT
119 120 121 122
123 public function insert ( $sql , array $params = [ ] )
124 {
125 $stmt = $this -> pdo -> prepare ( $sql ) ;
126 $stmt -> execute ( $params ) ;
127 return $this -> pdo -> lastInsertId ( ) ;
128 }
129
130 131 * DELETE
132 133 134 135
136 public function delete ( $sql , array $params = [ ] )
137 {
138 $stmt = $this -> pdo -> prepare ( $sql ) ;
139 $stmt -> execute ( $params ) ;
140 return $stmt -> rowCount ( ) ;
141 }
142
143 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/22 05:16