【问题标题】:API with SLIM PHP in LAMP Server with MSSQL database带有 MSSQL 数据库的 LAMP 服务器中带有 SLIM PHP 的 API
【发布时间】:2016-05-25 01:23:20
【问题描述】:

我的 Ubuntu 中有 Lamp 服务器。我使用 slim 框架和 mysql 数据库在 Api 上工作,并且工作正常。我的问题是我无法将我的 api 连接到 MSSQL。 我已经在 ubuntu 中安装了 freetds 我还将它包含在 freetds.conf 中

 [myserver]
    host = myhost
    port = myport

这是我的连接:

function getConnection() {
   $dbhost="myserver.database.windows.net";
   $dbuser="user";
   $dbpass="mypass";
   $dbname="myDB";
   $dbh = new PDO("dblib:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
   $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   return $dbh;
}

这是我在 slim 中的 api:

$app = new Slim\App();

$app->get('/clients', 'getClients'); 

$app->run();

function getClients() {
$sql = "select * FROM mytable";

try {
    $db = getConnection();
    $stmt = $db->query($sql);  
    $clients = $stmt->fetchAll(PDO::FETCH_OBJ);
    $db = null;
    echo '{"client": ' . json_encode($clients) . '}';
} catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
}
}

【问题讨论】:

    标签: php sql-server api lamp slim


    【解决方案1】:

    我认为你错过了什么......

    我认为你需要让 PDO 知道什么端口

    http://php.net/manual/en/ref.pdo-dblib.php

    $hostname = "myhost";
    $port = 10060;
    $dbname = "tempdb";
    $username = "dbuser";
    $pw = "password";
    $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2011-08-03
      • 2016-03-20
      • 2017-01-28
      相关资源
      最近更新 更多