|
|
|
มีปัญหาเกี่ยวกับ php connect oracle 11g 64bit แสดงข้อมูลหน้าเว็บเป็น ?????? |
|
|
|
|
|
|
|
ก่อนอื่นขออธิบายก่อนนะครับ
1. สเปคเครื่อง windows server 2008 R2 , oracle 11g 64bit
2. ลง oracle เรียบร้อย เซ็ต NLS_LANG = AMERICAN_AMERICA.TH8TISASCII แล้ว
3. การเชื่อมต่อเว็บ php ผ่าน odbc 32bit (โดยการลงตัว Driver เสริม)
ด้านล่างเป็นโค๊ตที่ใช้ สงสัยว่ามันเป็นเพราะอะไรซึ่งโค๊ตตัวนี้ที่ผ่านมาก็ใช้ได้กับทุกตัวรวมถึง Oracle ด้วย ลองหาในเว็บแล้วทำตามก็ยังไม่ได้ ช่วยหน่อยเถอะครับ งานต้องส่งแล้วด้วย
config.php
Code (PHP)
$config['odbc_datasource'] = "server";
$config['odbc_username'] = "USER1";
$config['odbc_password'] = "PASS1";
$config['odbc_collation'] = "TIS-620";
$odbc = new myODBC($config['odbc_datasource'],$config['odbc_username'],$config['odbc_password']);
$odbc->setCollation($config['odbc_collation'],"UTF-8");
connect.php
Code (PHP)
class myODBC {
var $_conn;
function __construct($datasource,$username="",$password=""){
$this->_conn = odbc_connect($datasource,$username,$password,SQL_CUR_USE_ODBC);
$this->setCollation();
}
/**** function connect to database ****/
function query($query,$debug = false){
$dataset = array();
$query = iconv($this->_collation2,$this->_collation1,$query);
$result = odbc_exec($this->_conn,$query);
while($row = @odbc_fetch_array($result)){
$item = array();
foreach($row as $key => $data){
$datax = iconv($this->_collation1,$this->_collation2,$data);
$item[$key] = $datax;
}
$dataset[] = $item;
}
if($debug){
echo $query;
}
return $dataset;
}
function setCollation($collation1 = "UTF-8",$collation2 = "UTF-8"){
$this->_collation1 = $collation1;
$this->_collation2 = $collation2;
}
function close (){
odbc_close($this->_conn);
}
}
Tag : PHP, Oracle
|
ประวัติการแก้ไข 2013-07-18 12:01:31
|
|
|
|
|
Date :
2013-07-18 11:54:21 |
By :
babyprogrammer |
View :
1746 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้ครับ กลายเป็นภาษาต่างดาวทั้งเว็บเลย ส่วนข้อมูลที่ดึงมาจาก oracle ก็เป็น ????? เหมือนเดิม
|
|
|
|
|
Date :
2013-07-18 13:55:50 |
By :
babyprogrammer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง Save เป็น ANSI (ใน Editplus) ครับ
|
|
|
|
|
Date :
2013-07-18 14:14:17 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
putenv("ORACLE_SID=ZEAL");
putenv("ORACLE_HOME=/Oracle/Ora81");
putenv("NLS_LANG=AMERICAN_AMERCIA.TH8TISASCII");
ลองดูพวกนี้แล้วใช่ไหม๊ครับ
|
|
|
|
|
Date :
2013-07-18 14:50:57 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ
|
|
|
|
|
Date :
2013-07-18 14:57:41 |
By :
babyprogrammer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เหมือนเดิม ขอบคุณครับ
|
|
|
|
|
Date :
2013-07-18 15:55:43 |
By :
babyprogrammer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูเหมือนว่าเดี๋ยวใช้ ascii เดี๋ยวก็ใช้ utf-8 นะ
ต้องเลือกเอาอันใดอันนึงสิ
|
|
|
|
|
Date :
2013-07-19 07:52:36 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|