带有MSSQL数据库的LAMP Server中的SLIM PHP API

时间:2016-05-25 01:23:21

标签: php sql-server api lamp slim

我的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;
}

这是我的api in slim:

$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() .'}}'; 
}
}

1 个答案:

答案 0 :(得分:0)

我觉得你错过了什么......

我认为你需要让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");