ob_start();
session_start();
include("include/header.php");
$data = $odbc->query("SELECT * FROM tbl_main");
Tag : PHP, Ms SQL Server 2008
Date :
2014-09-11 09:33:27
By :
babyprogrammer
View :
1836
Reply :
9
No. 1
Guest
ไหนๆ ก็จะ oop แล้ว ก็เอาให้เต็มรปแบบไปเลย
method ล้อของ .net น่าจะพอเข้าใจนะ
database\idatabase.php
<?php
namespace database;
interface idatabase {
public function open_connection();
public function close_connection($conn);
public function execute_nonquery($conn, $query, $params);
public function execute_query($conn, $query, $params );
public function begin_transaction($conn);
public function commit_transaction($conn, $querys);
}
}
?>
database\sql_server.php
<?php
namespace database;
class sql_server implements idatabase {
public function open_connection() {
$connection_info = array("UID" => DB_USER,
"PWD" => DB_PASSWORD,
"Database" => DB_NAME,
"CharacterSet" => DB_CHARACTERSET);
$conn = sqlsrv_connect(DB_HOST, $connection_info);
if ($conn === FALSE) {
echo "Unable to connect.<br />";
die(print_r(sqlsrv_errors(), TRUE));
}
return $conn;
}
public function close_connection($conn) {
sqlsrv_close($conn);
}
public function execute_nonquery($conn, $query, $params = FALSE) {
$resource = ($params === FALSE) ? sqlsrv_query($conn, $query) : sqlsrv_query($conn, $query, $params);
if ($resource === FALSE) {
echo "Error in executing query.<br />";
die(print_r(sqlsrv_errors(), TRUE));
}
return $resource;
}
public function execute_query($conn, $query, $params = FALSE) {
$resource = ($params === FALSE) ? sqlsrv_query($conn, $query) : sqlsrv_query($conn, $query, $params);
if ($resource === FALSE) {
echo "Error in executing query.<br />";
die(print_r(sqlsrv_errors(), TRUE));
}
$results = array();
while ($row = sqlsrv_fetch_array($resource)) {
$result = new query_result();
foreach ($row as $key => $value) {
$result->$key = $value;
}
$results[] = $result;
}
return $results;
}
public function begin_transaction($conn)
{
if (sqlsrv_begin_transaction($conn) === FALSE ) {
echo "Cann't begin transaction.<br />";
die(print_r( sqlsrv_errors(), TRUE));
}
}
public function commit_transaction($conn, $querys)
{
$result = is_array($querys);
if ($result === TRUE) {
foreach ($querys as $q) {
$result = $result && $q;
}
if ($result === TRUE) {
sqlsrv_commit($conn);
}
else {
sqlsrv_rollback($conn);
}
}
return $result;
}
}
?>
database\query_result.php
<?php
namespace database;
class query_result {
private $_results = array();
public function __set($key, $value) {
$this->_results[$key] = $value;
}
public function __get($key) {
if (isset($this->_results[$key])) {
return $this->_results[$key];
}
else {
return null;
}
}
}
?>
สอบถามต่ออีกนิดนึงครับ สมมุติว่าไฟล์ที่จะเรียกใช้ class อยู่ที่พาท modules\member\member_save_data\member_save.php เราต้องเรียกอย่างไรครับ คือที่ผมลองแจ้งว่า spl_autoload(): Class database\sql_server could not be loaded คือไฟล์ member_save.php นี้ไม่ได้ถูก include มาไว้ใน index อ่ะครับ เป็นเหมือนกับว่าไฟล์นี้จะทำหน้าที่บันทึกหลังจากกดปุ่มจากหน้าหลัก
Code (PHP)
ob_start();
session_start();
require_once ('../../../database/include.php');
// autoload
spl_autoload_extensions(".php");
spl_autoload_register();
$sqlsvr = new database\sql_server();
$conn = $sqlsvr -> open_connection();
$query2 = "INSERT INTO tbl_main ( id , name ) VALUES ( 5 , 'บี๋' )";
$result2 = $sqlsvr->execute_query($conn, $query2);
Date :
2014-09-11 12:24:36
By :
babyprogrammer
No. 4
Guest
Quote:
สมมุติว่าไฟล์ที่จะเรียกใช้ class อยู่ที่พาท modules\member\member_save_data\member_save.php เราต้องเรียกอย่างไรครับ
Code (PHP)
spl_autoload_extensions(".php");
spl_autoload_register();
use modules\member\member_save_data\member_save;
$obj = new member_save();
// ชื่อ class ต้องชื่อเดียวกับชื่อไฟล์
// ชื่อ namespace ต้องอันเดียวกับ folder
// ยกตัวอย่างเป็นในที่นี่ path = modules\member\member_save_data\member_save.php
// ดังนั้น namespace = modules\member\member_save_data;