ผมลองเขียนตามตัวอย่างของ manual (http://phplens.com/lens/adodb/docs-adodb.htm#ex1) ใน adodb ดู
มันไม่ขึ้นอะไรเลยครับ ช่วยดูโค้ดให้หน่อยนะครับ
<html>
<head>
<title>ThaiCreate.Com PHP & Access Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?
include('adodb5/adodb.inc.php');
$conn = &ADONewConnection('oracle'); # create a connection
$conn->PConnect('false', 'system', '1234', 'article'); # ตรงนี้ผมไม่แน่ใจว่าใช่ตามที่ตั้งไว้หรือปล่าว
$recordSet = &$conn->Execute('select * from article');
if (!$recordSet)
print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
print $recordSet->fields[0].' '.$recordSet->fields[4].'<BR>';
$recordSet->MoveNext();
}
$recordSet->Close(); # optional
$conn->Close(); # optional
?>
</body>
</html>
ผมสร้างตารางชื่อ article นะครับ ช่วยดูให้ทีนะ
ขอบคุณมากครับ ฃ
ผมเดาเอานะคับ
$conn->PConnect('false', 'system', '1234', 'article'); <-- host ไม่น่าจะเป็น false นะคับ คิดว่ามันจะประมาณนี้ $conn->PConnect(host,username,password,database);
$recordSet = $conn->Execute('select * from article'); แล้วก็เดาเอาว่าไม่าจะต้องใส่ & นะคับ ไม่น่าจะต้อง returned by reference (ถ้าผมเข้าใจ & ไม่ผิดอะนะ)
อ้างถึงจาก: ratz ใน 04 กันยายน 2011, 20:21:28
ผมเดาเอานะคับ
$conn->PConnect('false', 'system', '1234', 'article'); <-- host ไม่น่าจะเป็น false นะคับ คิดว่ามันจะประมาณนี้ $conn->PConnect(host,username,password,database);
$recordSet = $conn->Execute('select * from article'); แล้วก็เดาเอาว่าไม่าจะต้องใส่ & นะคับ ไม่น่าจะต้อง returned by reference (ถ้าผมเข้าใจ & ไม่ผิดอะนะ)
ผมลองเปลี่ยนเป็น $conn->PConnect('localhost', 'system', '1234', 'article'); และเอา & ออกแล้วแต่ก็ยังไม่ได้อยู่ดีครับ ทำไงต่อดี :'(
ตอนนี้มันขึ้น error อะไรมาบ้างหรือเปล่าครับ
หรือว่า blank page อย่างเดียวครับ ??
$conn->PConnect('localhost', 'system', '1234', 'article');
อันสุดท้ายจะเป็น dbname นะครับ ไม่ใช่ชื่อ table นะครับ
อ้างถึงจาก: suchatd ใน 05 กันยายน 2011, 02:25:04
ตอนนี้มันขึ้น error อะไรมาบ้างหรือเปล่าครับ
หรือว่า blank page อย่างเดียวครับ ??
$conn->PConnect('localhost', 'system', '1234', 'article');
อันสุดท้ายจะเป็น dbname นะครับ ไม่ใช่ชื่อ table นะครับ
ตรงนี้แหละครับที่ผมสับสน มันไม่เหมือน mysql เลย ตอนที่เข้าไปสร้างตาราง ก็สร้างชื่อ article ครับ แต่ไม่รู้ว่ามันอยู่ใน dbname อันไหน มันมีวิธีดูไหมครับ
ใช้ sqlplus หรือเปล่าครับ
ปล่าวครับ ผมไม่เคยใช้ ผมใช้ oracle 10g XE ตัวฟรีนะครับ ที่เข้าผ่าน http://127.0.0.1:8080/apex นะครับ
แล้วก็ไปสร้างตารางในนั้นเลยครับ
อ่อพอจะรู้ละ สำหรับ oracle มันจะเป็นรูปแบบนี้
$conn->PConnect('TNSName', 'system', '1234');
ผมเองไม่ได้แตะ oracle มา 3 ปีก่าละ ตั้งแต่ 9i เลยลืมๆ ไปหมดละ :wanwan044:
ผมลองแล้วแต่มันก็ยังไม่ได้อยู่ดีครับ
พอจะมีตัวอย่างบ้างไหม๋ครับ ผมหาไม่เจอซะที เจอแต่ที่เป็น mysql
ถ้าเชื่อต่อ mysql มันได้ครับ แต่พอจะไป oracle ติดปัญหานี้แหละครับ :'(
ok let's me try again(mua)
$db = NewADOConnection("oci8"); // oci8 = standard method for accessing databases running Oracle 8i, 9i or 10g (and later).
$db->Connect($tnsName, username, password); //I'm not sure about position na kub tnsName is Transparent Network Substrate Name na kub
why don't u use mysql la?
อ้างถึงจาก: ratz ใน 05 กันยายน 2011, 04:16:11
ok let's me try again(mua)
$db = NewADOConnection("oci8"); // oci8 = standard method for accessing databases running Oracle 8i, 9i or 10g (and later).
$db->Connect($tnsName, username, password); //I'm not sure about position na kub tnsName is Transparent Network Substrate Name na kub
why don't u use mysql la?
ลองเปลี่ยนเป็น oci แล้วก็เปลี่ยนพารามิเตอร์ตามที่บอกไว้แต่ยังไม่ได้ครับ
ผมดูตามนี้นะครับ Connecting to Multiple Databases at once (http://phplens.com/lens/adodb/docs-adodb.htm#ex6)
เหตุที่ไม่ใช้ mysql เพราะอาจารย์เค้าอยากให้ใช้ 3 ฐานข้อมูลร่วมกันครับ mysql ผมทำเสร็จไปแล้ว เหลือ oracle กับ sql server 2008 สองตัวนี้จะใช้ adodb เป็นตัวเชื่อมครับ ส่วน mysql จะไม่ใช่ตัวเชื่อมอะไรครับ
ผมดูในเว็บต่างประเทศเค้าก็เขียนประมาณนี้นะครับ
Using ADOdb with PHP and Oracle: an advanced tutorial (http://phplens.com/lens/adodb/docs-oracle.htm)
include "/path/to/adodb.inc.php";
$db = NewADOConnection("oci8");
$db->Connect($tnsName, "scott", "tiger");
$rs = $db->Execute("select * from emp where empno>:emp order by empno",
array('emp' => 7900));
while ($arr = $rs->FetchRow()) {
print_r($arr);
echo "<hr>";
}
ใส่ tnsname ถูกต้องแล้วก็ยังไม่ได้เหรอครับ ??
อ้างถึงจาก: suchatd ใน 05 กันยายน 2011, 10:27:08
ใส่ tnsname ถูกต้องแล้วก็ยังไม่ได้เหรอครับ ??
tnsname คือชื่อตารางที่สร้างใช่ไหม๋ครับ ถ้าใช่ก็ถูกแล้วครับ ผมสร้างตารางชื่อ article ครับ
ผมไปเจอบทความนี้มาครับ
ใช้ ADOdb กับ PHP และ Oracle มีข้อดีเยอะมากมาย (1/2) (http://www.webub.com/%E0%B9%83%E0%B8%8A%E0%B9%89%20ADOdb%20%E0%B8%81%E0%B8%B1%E0%B8%9A%20PHP%20%E0%B9%81%E0%B8%A5%E0%B8%B0%20Oracle%20%E0%B8%A1%E0%B8%B5%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%94%E0%B8%B5%E0%B9%80%E0%B8%A2%E0%B8%AD%E0%B8%B0%E0%B8%A1%E0%B8%B2%E0%B8%81%E0%B8%A1%E0%B8%B2%E0%B8%A2%20%20-928-16.html)
ใช้ ADOdb กับ PHP และ Oracle มีข้อดีเยอะมากมาย (2/2)
(http://www.webub.com/%E0%B9%83...%B2%E0%B8%A2%20%20-929-16.html)
ไม่ทราบว่าผมต้องทำแบบไหนหรอครับ วิธีติดต่อมีมากมายเลย :P
$DB_Type = "oci8";
$DB_Host = "192.168.1.xxx";
$DB_Port = "1521";
$DB_User = "SYS";
$DB_Password = "123456";
$DB_Name = "TESTDB";
$DB_SERVICE_NAME = "ORCI";
$DB_TNSName = "
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =$DB_Host)(PORT = $DB_Port))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = $DB_SERVICE_NAME)
)
)";
$db = NewADOConnection($DB_Type);
$db->Connect($DB_TNSName, $DB_User, $DB_Password);
.
.
.
ขออนุญาตขุดหน่อ่ยนะครับ พอดีพึ่ง search เจอ
TNS name ไม่ใช่ชื่อตารางครับ
มันเป็นชื่อ database