问题 如何从PHP连接Oracle数据库


如何从PHP连接到Oracle数据库?


11854
2018-05-10 09:12


起源

你在找什么,连接字符串?看看PDO或OCI_ at php.net/manual/en/intro.oci8.php - Michael J.V.
一件重要的事情:如果要连接到远程Oracle服务器,则需要安装Oracle Instant Client。更多信息和OIC链接: de.php.net/manual/en/oci8.requirements.php - Raffael Luthiger


答案:


在搜索到您的确切问题后,谷歌中的链接提出以下链接: http://me2learn.wordpress.com/2008/10/18/connect-php-with-oracle-database/

<?php
    $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.34)(PORT = 1521)))(CONNECT_DATA=(SID=orcl)))" ;

    if($c = OCILogon("system", "your database password", $db))
    {
        echo “Successfully connected to Oracle.\n”;
        OCILogoff($c);
    }
    else
    {
        $err = OCIError();
        echo “Connection failed.” . $err[text];
    }
?>

9
2018-05-10 09:27



该博文似乎是特定于Windows的。 - nick fox


我以为你想用php连接oracle数据库。所以,我给你两个文件,这是一个基本的php-oracle供你参考。祝你好运!

form.php的

<form name="form1" method="post" action="login.php">
  <label> User Name
  <input type="text" name="nis" id="nis">
  </label>
  <label> Password
  <input type="password" name="password" id="password">
  </label>
  <label>
  <input type="submit" name="submit" id="button" value="Login">
  </label>
</form>

的login.php

<?php

//create table users (userid varchar2(10), password varchar2(20), constraint pk_users primary key (userid));
//insert into users values('kharis', 'pass123');

$nis = isset($_POST['nis']) == true ? $_POST['nis'] : '';
$password= isset($_POST['password']) == true ? $_POST['password'] : '';

if(empty($nis) or empty($password)){
    echo "UserID atau Password kosong";}
else
{
    $db = "(DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = patronus.ad-ins.com)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )" ;
    $connect = oci_connect("HR", "hr", "XE");
    $query = "SELECT * from users WHERE userid='".$nis."' and password='".$password."'";
    $result = oci_parse($connect, $query);
    oci_execute($result);
    $tmpcount = oci_fetch($result);
    if ($tmpcount==1) {
        echo "Login Success";}
    else
    {
        echo "Login Failed";
    }
}
?>

4
2017-12-15 02:02





PHP提供 Oracle OCI8的功能。其他选项是PDO与 Oracle驱动程序 和(如果oracle支持它) ODBC


2
2018-05-10 09:14





我以最简单的方式创建了一个连接,如下所示:

步骤1.确定您正在运行的PHP位版本(32位或64位)。   如果PHP_INT_SIZE的值为4,则版本为32位。如果PHP_INT_SIZE的值为8,则版本为64位。使用以下代码:

<?php
    switch(PHP_INT_SIZE) {
        case 4:
            echo '32-bit version of PHP';
            break;
        case 8:
            echo '64-bit version of PHP';
            break;
        default:
            echo 'PHP_INT_SIZE is ' . PHP_INT_SIZE;
    } 
?>

步骤2.从Windows下载“InstantClient Package - Basic”   [OTN InstantClient页面] [1]。确保从步骤1下载相应的位版本。

步骤3.将InstantClient文件解压缩到 C:\instantclient_11_2 和   编辑要包含的Windows PATH环境 C:\instantclient_11_2。   例如,在Windows XP上,按照“开始”>“控制面板”>“系统”>

Advanced > Environment Variables` and edit `PATH` in the `System`
> variables list.
Step 3. In your `php.ini` file, enable the following lines:
extension=php_oci8_11g.dll
extension=php_openssl.dll

Finally, restart your Apache server.

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

1
2018-04-29 12:11





从您的问题中不清楚您是否要配置PHP安装以连接到oracle,或者您只是想要php语法来建立连接?

由于这里已经有一个Windows特定的答案和连接systax,这些链接应指向正确的方向,以便安装基于Linux的Oracle客户端库。

基本步骤是......

  • 解压缩Oracle客户端库(Basic,SDK和sqlplus包)
  • 将LD_LIBRARY_PATH添加到您的环境中
  • 修复库的一些符号链接
  • 安装PECL OCI8,这将编译共享对象,因此您的系统将需要一个C编译器
  • 在php.ini文件中启用扩展。请记住,您的系统可能有单独的CLI和Web服务器的php.ini文件,因此请检查两者。
  • 重启你的网络服务器

这些步骤在多个博客文章中,所以我不会在这里重新发明轮子。但这里有一些看起来很不错的链接


0
2018-03-16 21:55