php教程 php手册 写了一个设置pdo DSN的方法想请大家看看

写了一个设置pdo DSN的方法想请大家看看

Jun 13, 2016 am 09:52 AM
pdo 방법 ~의 바라보다 설정




写了一个设置pdo DSN的方法想请大家看看

ORACLE跟SQLITE 都只有数据库主机,连数据库名都没有,我不知道怎么设置。
发出来大家看看吧 private function setDSN()

{

switch (strtoupper($this->datatype)){

case 'MYSQL':

$_DSN = 'mysql:host='.$this->hostname.';dbname='.$this->database.';port='.$this->hostport;

break;

case 'MSSQL':

case 'DB2':

$_DSN = 'dblib:host='.$this->hostname.':'.$this->hostport.';dbname='.$this->database;

break;

case 'ORACLE':

$_tns = "

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP )(HOST = $this->hostname)(PORT = $this->hostport))

)

(CONNECT_DATA =

(SERVICE_NAME = $this->database)

)

)";

$_DSN = 'oci:dbname='.$_tns;

break;

case 'SQLITE':

$_DSN = 'sqlite:'.$this->hostname;

break;

case 'PGSQL':

$_DSN = 'pgsql:host='.$this->hostname.'port='.$this->hostport.';dbname='.$this->database;

break;

case 'FIREBIRD':

$_DSN = 'firebird:dbname='.$this->hostname.':'.$this->database;

break;

case 'ODBC':

$_DSN = 'odbc:DSN='.$this->hostname.';UID='.$this->username.';PWD='.$this->password;

break;

}

return $_DSN;

}


复制代码ORACLE 看了一下cn.php.net上的又修改了一下。

[ ]

我来回答




D8888D回贴内容-------------------------------------------------------
我是来学习的[img]http://www.111cn.cn/bbs/images/smilies/default/lol.gif[/img]

D8888D回贴内容-------------------------------------------------------
分少的原因?怎么没人回复呢`

D8888D回贴内容-------------------------------------------------------
见过

D8888D回贴内容-------------------------------------------------------
这两个数据库 都木用过

D8888D回贴内容-------------------------------------------------------
学习一下,只看程序思路,不看用啥数据库

D8888D回贴内容-------------------------------------------------------
请查阅手册上相关的资料
Example#1 PDO_SQLITE DSN examples

The following examples show PDO_SQLITE DSN for connecting to SQLite databases: sqlite:/opt/databases/mydb.sq3

sqlite::memory:

sqlite2:/opt/databases/mydb.sq2

sqlite2::memory:
复制代码
cursade at hotmail dot com
2006-04-21 14:29
if oracle and oracle instant client has been installed,
without db in the same host

For UNIX/LINUX,set $LD_LIBRARY_PATH
appent your instant client path and client/lib path to it,

For windows set PATH like this

After set the path ,set TNS_ADMIN everioment ,point to
where tnsnames.ora located.

Then,you can use service name to connect to your Database

Test coding

$param = $_POST;

$db_username = "youusername";

$db_password = "yourpassword";

$db = "oci:dbname=yoursid";

$conn = new PDO($db,$db_username,$db_password);

$name = $param['module'];

$file = $param['file'];

$stmt = $conn->exec("INSERT INTO AL_MODULE (AL_MODULENAME, AL_MODULEFILE) VALUES ('$name', '$file')");



?>

复制代码cursade at hotmail dot com
2006-04-20 17:43
If instant client has been installed but the full oracle client
not yet ,you can use pdo to connect to oracle database
like following coding:

$tns = "

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = yourip)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

";

$db_username = "youname";

$db_password = "yourpassword";

try{

$conn = new PDO("oci:dbname=".$tns,$db_username,$db_password);

}catch(PDOException $e){

echo ($e->getMessage());

}

?>

复制代码
1、SQLite不是数据主机,而是数据库文件
2、ORACEL的主机格式可能有多种形式,说不定人家是一个数据集群呢?

[ ]


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Tomato Free Novel 앱에서 소설 쓰는 방법 Tomato Novel에서 소설 쓰는 방법에 대한 튜토리얼을 공유하세요. Tomato Free Novel 앱에서 소설 쓰는 방법 Tomato Novel에서 소설 쓰는 방법에 대한 튜토리얼을 공유하세요. Mar 28, 2024 pm 12:50 PM

Tomato Free Novel 앱에서 소설 쓰는 방법 Tomato Novel에서 소설 쓰는 방법에 대한 튜토리얼을 공유하세요.

Douyin에 작품을 게시할 예정 시간을 어떻게 설정하나요? 비디오 지속 시간은 어떻게 설정합니까? Douyin에 작품을 게시할 예정 시간을 어떻게 설정하나요? 비디오 지속 시간은 어떻게 설정합니까? Mar 27, 2024 pm 06:11 PM

Douyin에 작품을 게시할 예정 시간을 어떻게 설정하나요? 비디오 지속 시간은 어떻게 설정합니까?

WeChat에서 삭제된 연락처를 복구하는 방법(삭제된 연락처를 복구하는 방법을 알려주는 간단한 튜토리얼) WeChat에서 삭제된 연락처를 복구하는 방법(삭제된 연락처를 복구하는 방법을 알려주는 간단한 튜토리얼) May 01, 2024 pm 12:01 PM

WeChat에서 삭제된 연락처를 복구하는 방법(삭제된 연락처를 복구하는 방법을 알려주는 간단한 튜토리얼)

Douyin 태그는 어디에 설정되어 있나요? 정확하게 푸시될 수 있도록 태그를 어떻게 지정해야 합니까? Douyin 태그는 어디에 설정되어 있나요? 정확하게 푸시될 수 있도록 태그를 어떻게 지정해야 합니까? Mar 27, 2024 am 11:01 AM

Douyin 태그는 어디에 설정되어 있나요? 정확하게 푸시될 수 있도록 태그를 어떻게 지정해야 합니까?

모바일 드래곤 알 부화의 비밀이 공개됩니다(모바일 드래곤 알을 성공적으로 부화하는 방법을 단계별로 알려드립니다) 모바일 드래곤 알 부화의 비밀이 공개됩니다(모바일 드래곤 알을 성공적으로 부화하는 방법을 단계별로 알려드립니다) May 04, 2024 pm 06:01 PM

모바일 드래곤 알 부화의 비밀이 공개됩니다(모바일 드래곤 알을 성공적으로 부화하는 방법을 단계별로 알려드립니다)

휴대폰에서 글꼴 크기를 설정하는 방법(휴대폰에서 글꼴 크기를 쉽게 조정) 휴대폰에서 글꼴 크기를 설정하는 방법(휴대폰에서 글꼴 크기를 쉽게 조정) May 07, 2024 pm 03:34 PM

휴대폰에서 글꼴 크기를 설정하는 방법(휴대폰에서 글꼴 크기를 쉽게 조정)

iPhone에서 방해 금지 모드가 작동하지 않음: 수정 iPhone에서 방해 금지 모드가 작동하지 않음: 수정 Apr 24, 2024 pm 04:50 PM

iPhone에서 방해 금지 모드가 작동하지 않음: 수정

웨이보 중간에 워터마크 설정하는 방법_웨이보 중간에 워터마크 설정하는 방법 웨이보 중간에 워터마크 설정하는 방법_웨이보 중간에 워터마크 설정하는 방법 Mar 29, 2024 pm 03:31 PM

웨이보 중간에 워터마크 설정하는 방법_웨이보 중간에 워터마크 설정하는 방법

See all articles