将 Codeigniter 3 与 MS SQL Server 连接

Posted

技术标签:

【中文标题】将 Codeigniter 3 与 MS SQL Server 连接【英文标题】:Connect Codeigniter 3 with MS SQL Server 【发布时间】:2016-03-28 13:13:30 【问题描述】:

我正在尝试将 Codeigniter 3 与 Microsoft SQL Server 2008 连接

但我收到错误服务器错误 500

我附上了database.php的代码

$db['default'] = array(
'dsn'   => 'Driver=SQL Server Native Client 10.0;Server=(local);Database=my_db;',
'hostname' => '(local)',
'port'     => '',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'odbc', // or mssql or sqlsrv
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
//'autoinit' => TRUE,
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
 );

我尝试用 MS SQL 连接简单的核心 php 文件,连接成功。

以下是核心PHP文件代码。

<?php
// Replace the value of these variables with your own data
$user = '';
$pass = '';
$server = "(local)";
$database = 'h2g2';

// No changes needed from now on
$connection_string = "DRIVER=SQL Server;SERVER=$server;DATABASE=$database"; 
$conn = odbc_connect($connection_string,$user,$pass);

if ($conn) 
    echo "Connection established.";

    $sql = "INSERT INTO hg_users (u_uuid,u_name, u_email,u_new_email,u_password,u_display_name,u_forgot_token,u_forgot_token_request_time,u_verify_token,u_verified,u_last_login_date,u_last_login_ip,u_created_date,u_modified_date,u_status) 
                        VALUES ('1231233', '123123123 sdfsdfdsdf','ASsASas','asdasd','asd','ewrt','fgh','sdfgsasd','asdasd','2','zx','ZXcZX','aSzxCASD','ASDzxzx','1');";

    $result = odbc_exec($conn,$sql);
    echo "<pre>";print_r($result);
    die;

 else
    die("Connection could not be established.");

?>

我正在使用 PHP 5.6 和 Sql server 2008 和 Xampp,Windows 7 32 位。

【问题讨论】:

".. 我正在尝试将 PHP 脚本与 MS Sql Server 2008 连接。"。那么,你的代码在哪里。我们不能假设您的代码。我们不会坐下来观看那个视频。而且,“..我仍然遇到同样的错误。”。什么错误?? 是的,相信我! 有没有考虑先学php? @NanaPartykar 在评论前看到这一行问题:以下是核心 PHP 文件代码。 @SnakeFoot 我已经了解 PHP。先看看我的问题。 【参考方案1】:

如果您已使用 CodeIginiter 成功连接到 MS SQL 服务器,则不需要在代码的第 2 部分中进行第二次连接。只需致电$this-&gt;db-&gt;query("INSERT INTO ....") 即可。 CI 为您完成剩下的工作。 (删除odbc_connectodbc_exec)并使用内置的CI数据库类。

您的代码如下所示

$sql = "INSERT INTO hg_users (u_uuid,u_name, u_email,u_new_email,u_password,u_display_name,u_forgot_token,u_forgot_token_request_time,u_verify_token,u_verified,u_last_login_date,u_last_login_ip,u_created_date,u_modified_date,u_status) 
        VALUES ('1231233', '123123123 sdfsdfdsdf','ASsASas','asdasd','asd','ewrt','fgh','sdfgsasd','asdasd','2','zx','ZXcZX','aSzxCASD','ASDzxzx','1');";

// runs the query to your MS SQL connection (automatically)
$this->db->query($sql);

参考:

https://ellislab.com/codeIgniter/user-guide/database/examples.html

【讨论】:

以上是关于将 Codeigniter 3 与 MS SQL Server 连接的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL INSERT INTO SELECT 与 codeigniter 一起使用

如何将 codeigniter 与 Sql Server 2012 连接?

如何将Codeigniter与MSSQL(SQL Server)连接?

通过 ODBC 将 codeigniter 3 连接到任何地方的 SQL

无法使用 PHP Codeigniter 连接 SQL Server

LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException