|
|
|
รบกวนช่วยเหลือกับการเขียนคลาสของ mysqli ไว้ใช้งานด้วยครับ |
|
|
|
|
|
|
|
ต้องขอออกตัวก่อนว่า เพิ่งจะหันมาใช้ mysqli ได้ไม่นานครับ เลยอยากจะเขียน class เพื่อไว้ในงานเอง แต่ยังไม่สำเร็จสักทีครับ
Code (PHP)
<?php
class MyDB {
function __construct()
{
$this->connection = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME) or die('ไม่สามารถติดต่อฐานข้อมูลได้');
$this->connection->set_charset('utf8');
}
private function getTypes($item)
{
switch (gettype($item))
{
case 'NULL':
case 'string':
return 's';
break;
case 'integer':
return 'i';
break;
case 'blob':
return 'b';
break;
case 'double':
return 'd';
break;
}
}
public function insert($table, $data = array())
{
$fields = array();
$values = array();
$valiable_types = array();
$values_prepare = array();
foreach ($data as $field => $value)
{
$fields[] = $field;
$values[] = "'" . $value . "'";
$valiable_types[] = $this->getTypes($value);
$values_prepare[] = '?';
}
$field = implode(', ', $fields);
$value = implode(', ', $values);
$valiable_type = implode('', $valiable_types);
$value_prepare = implode(', ', $values_prepare);
$stmt = $this->connection->prepare("INSERT INTO $table ($fields) VALUES ($value_prepare)");
$stmt->bind_param("$valiable_type", $value);
$stmt->execute();
?>
ปัญหาตอนนี้อยู่ที่ $stmt->bind_param("$valiable_type", $value); ตอนแรกคิดว่าใช้แบบนี้ได้ แต่กลับไม่ได้ :D
ไม่ทราบว่าจุดนี้จะเขียนอย่างไรดีครับ
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2013-08-30 23:00:15 2013-08-30 23:01:57 2013-08-30 23:02:40
|
|
|
|
|
Date :
2013-08-30 22:58:09 |
By :
freedom01 |
View :
718 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้แบบนี้ครับ เครดิต : php.net
Code (PHP)
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
|
|
|
|
|
Date :
2013-08-31 23:40:03 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ แต่ถ้าอยากจะเอาข้อมูลจาก $data ที่เป็น array มาแยกให้อยู่ในรูปแบบที่ถูกต้อง จะต้องเขียนอย่างไรได้บ้างครับ
|
|
|
|
|
Date :
2013-09-01 14:02:09 |
By :
freedom01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|