Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. <?php
  2.  
  3. require dirname(__DIR__).'\config\DB.php';
  4. require dirname(__DIR__).'\util\array.php';
  5. class buildquery extends DB_config
  6. {
  7. private $pdo;
  8. private $array_tool;
  9. private $param;
  10. public function __construct()
  11. {
  12. $this->pdo = new PDO($this->dsn, $this->user, $this->password);
  13. $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  14. $this->array_tool = new array_tool();
  15. }
  16.  
  17. /*
  18. * ฟังก์ชั่นในการเลือกข้อมูล
  19. * @param string $table ชื่อ table ที่ต้องการ
  20. * @param array $columns ชื่อ columns ที่ต้องการ
  21. * @return string $sql คือ SQL command
  22. */
  23. public function select(string $table, array $columns = null)
  24. {
  25. $sql = 'SELECT ';
  26. if ($columns == null) {
  27. $sql .= "* FROM {$table}";
  28. } elseif ($columns != null) {
  29. $columns_size = (int) count($columns);
  30. $columns_num = (int) count($columns) - 1;
  31. for ($i = 0; $i < $columns_size; ++$i) {
  32. if ($i < $columns_num) {
  33. $sql .= "{$columns[$i]},";
  34. } else {
  35. $sql .= "{$columns[$i]} FROM {$table}";
  36. }
  37. }
  38. }
  39.  
  40. return (string) $sql;
  41. }
  42. /*
  43. * ฟังก์ชั่นกำหนดเงื่อนไข
  44. * @param $sql คือ SQL command
  45. * @param array $condition เป็นเงื่อนไขที่ต้องการ
  46. */
  47. public function where(array $condition)
  48. {
  49. $param = array();
  50. $sql .= " WHERE ";
  51. $condition_size = (int)count($condition);
  52. $condition_num = (int)count($condition) - 1;
  53. for ($i=0; $i < $condition_size ; $i++) {
  54. if ($i < $condition_num) {
  55. $sql .= "{$condition[$i][0]} :? ,";
  56. }else {
  57. $sql.= "{$condition[$i][0]} :? ;";
  58. }
  59. }
  60. for ($i=0; $i < $condition_size ; $i++) {
  61. array_push($param,$condition[$i][1]);
  62. }
  63. print_r($param);
  64. }
  65.  
  66. /*
  67. * ฟังก์ชั่นสำหรับ execute SQL command
  68. * @param string $sql คำสั่ง SQL ที่ต้องการ*/
  69. public function exec(string $sql,array $param)
  70. {
  71. $param_size = (int)count($param);
  72. $param_num = (int)count($param) - 1;
  73. for ($i=0; $i <$param_size ; $i++) {
  74.  
  75. }
  76.  
  77. }
  78.  
  79. /*
  80. * ฟังก์ชั่นในการเพิ่มข้อมูลเข้า DB
  81. * @param string $table คือ table ที่เราต้องการจะเพิ่มข้อมูล
  82. * @param array $columns คือ columns ที่ต้องการจะเพิ่มข้อมูล
  83. * @param array $values คือค่าที่ต้องการเพิ่มลง
  84. * @return $sql
  85. * @assert insert('test','',array('xxx','yyy'));
  86. * @assert insert('test',array('test1','test2'),array('xxx','yyy'));
  87. */
  88. public function insert(string $table, array $columns = null, array $values)
  89. {
  90. $sql = '';
  91. if ($columns == null) {
  92. $sql = "INSERT INTO {$table} VALUES (";
  93. $values_size = (int) count($values);
  94. $values_num = (int) count($values) - 1;
  95. for ($i = 0; $i < $values_size; ++$i) {
  96. if ($i < $values_num) {
  97. $sql .= ":{$i} ,";
  98. } elseif ($i == $values_num) {
  99. $sql .= ":{$i} );";
  100. }
  101. }
  102. $pdo = $this->pdo->prepare($sql);
  103. for ($i = 0; $i < $values_size; ++$i) {
  104. $param = ':'.$i;
  105. $pdo->bindParam($param, $values[$i]);
  106. }
  107. $pdo->execute();
  108. } elseif ($columns != null) {
  109. $sql = "INSERT INTO {$table}(";
  110. $columns_size = (int) count($columns);
  111. $columns_num = (int) count($columns) - 1;
  112. for ($i = 0; $i < $columns_size; ++$i) {
  113. if ($i < $columns_num) {
  114. $sql .= "{$columns[$i]},";
  115. } elseif ($i == $columns_num) {
  116. $sql .= "{$columns[$i]}) VALUES (";
  117. }
  118. }
  119. $values_size = (int) count($columns);
  120. $values_num = (int) count($columns) - 1;
  121. for ($i = 0; $i < $values_size; ++$i) {
  122. if ($i < $values_size_num) {
  123. $sql .= ":{$i},";
  124. } elseif ($i == $values_num) {
  125. $sql .= ":{$i});";
  126. }
  127. }
  128. $pdo = $this->pdo->prepare($sql);
  129. for ($i = 0; $i < $columns_size; ++$i) {
  130. $param = ':'.$i;
  131. $pdo->bindParam($param, $values[$i]);
  132. }
  133. $pdo->execute();
  134. }
  135. }
  136. }
  137. require dirname(__DIR__).'\database\FluentPDO\FluentPDO.php';
  138. $s = new PDO('mysql:dbname=test;host=127.0.0.1','root','@PeNtesterMYSQL');
  139. $s1 = new FluentPDO($s);
  140. $s2 = $s1->from('test1')->execute()->fetchAll();
  141. print_r($s2);
  142. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement