有做直播网网站的公司没有,seo优化信,开源手机建站系统,重庆建设工业公司官网为什么80%的码农都做不了架构师#xff1f; 最近公司有个项目需要用到Oracle数据库#xff0c;我负责前期的调研。由于项目要用到C和PHP两种语言#xff0c;所以先收集这两种语言连接Oracle的方法。PHP使用的是Laravel框架#xff0c;直接使用了Laravel-OCI… 为什么80%的码农都做不了架构师 最近公司有个项目需要用到Oracle数据库我负责前期的调研。由于项目要用到C和PHP两种语言所以先收集这两种语言连接Oracle的方法。PHP使用的是Laravel框架直接使用了Laravel-OCI8进行数据库连接毫无压力的连接成功了。C使用的是Ocilib进行数据库连接在这里踩了几个坑卡了几天今天有空整理下防止下次继续掉坑。 提示本文使用的是win7 64位去连接远程的 Oracle 11g数据库 OCILIB介绍 OCILIB是一个跨平台的Oracle驱动程序可提供非常快速和可靠地访问Oracle数据库。它提供了一个丰富功能齐全并易于使用的API 。OCILIB 支持运行的所有Oracle平台。 OCI环境搭建 由于OCILIB是对OCI进行二次封装所以在使用OCILIB前需要安装OCI环境我们只要安装好Instant Client就能完成OCI环境的搭建。 Instant Client下载 首先我们从官方下载自己系统所对应的Instant Client由于我的系统是win7 64位的所以选择了 Instant Client for Microsoft Windows (x64)下的 instantclient-basic-windows.x64-12.1.0.2.0.zip 提示页面下需要点击 Accept License Agreement 后才能开始下载。 Instant Client安装 我们将下载的文件解压到电脑任意位置(本文将以解压到 D:\instantclient_12_1 为例)然后添加以下环境变量: path D:\instantclient_12_1TNS_ADMIN D:\instantclient_12_1NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 提示path如果已经存在值的话直接在尾部追加。 下载OCILIB 直接从Github上下载最新版即可下载完成后将文件解压到任意位置(本文将以解压到 **C:\ocilib **为例)。 VS2010配置 点击 项目 - 属性 - 配置管理器新建一个X64平台(因为我下载的Instant Client是64位的所以要用x64平台)点击 项目 - 属性 - 配置属性 - VC 目录在 包含目录 添加 C:\ocilib\include点击 项目 - 属性 - 配置属性 - 链接器 - 常规在 附加库目录 添加 C:\ocilib\lib64示例代码 #include stdafx.h
#include ocilib.h#if defined(OCI_CHARSET_WIDE)
#pragma comment(lib, ocilibw.lib)
#elif defined(OCI_CHARSET_ANSI)
#pragma comment(lib, ociliba.lib)
#endifvoid err_handler(OCI_Error *err)
{printf(code : ORA-%05i\nmsg : %s\nsql : %s\n,OCI_ErrorGetOCICode(err), OCI_ErrorGetString(err),OCI_GetSql(OCI_ErrorGetStatement(err)));
}int main(int argc, _TCHAR* argv[])
{OCI_Connection* cn;OCI_Statement* st;OCI_Resultset* rs;OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);cn OCI_ConnectionCreate(192.168.1.152:1521/TEST, system, 123456, OCI_SESSION_DEFAULT);if(cn NULL){err_handler(OCI_GetLastError());printf(%i,OCI_GetVersionServer(cn));printf(连接失败\n);}st OCI_StatementCreate(cn);OCI_ExecuteStmt(st, select id,age from web_user);rs OCI_GetResultset(st);while (OCI_FetchNext(rs)){printf(code: %i, name %s\n, OCI_GetInt(rs, 1) , OCI_GetString(rs, 2));}printf(\n%d row(s) fetched\n, OCI_GetRowCount(rs));OCI_Cleanup();char a[20];gets(a);return EXIT_SUCCESS;
} 提示程序运行时如果提示 计算机中丢失 ocilib*.dll这里由于程序找不到ocilib*.dll造成的只要将 C:\ocilib\lib64 加入path或者将 C:\ocilib\lib64 下的 ocilib*.dll 复制到程序目录就可以解决了。 转载于:https://my.oschina.net/jathon/blog/756205