我无法使用 PDO 在 SQL Server 2008 中执行存储过程



我无法使用pdo和freetds(tds版本= 4.2,freebsd 10.0,php 5.6.2(在SQL Server 2008中执行存储过程:

$host = 'SRV1';
$db = 'FLOT_RRR';
$user = 'coolman';
$pass = '******';
$charset = 'windows-1251';
$dsn = "dblib:version=4.2;host=$host;dbname=$db;$charset";
try {
    $pdo = new PDO($dsn, $user, $pass);   
} catch(PDOException $e) {
        die("Failed to get DB handle: " . $e->getMessage()) ;
}
$st = $pdo->prepare('EXEC dbo.getNumberSmallShips');
$res = $st->execute();

var_dump($res)返回bool(false(

我的存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[getNumberSmallShips] 
AS
BEGIN
    SET NOCOUNT ON;
    SELECT COUNT (*) 
    FROM
        (SELECT 
             FLO_RN, FLO_FKL 
         FROM 
             flotmintrans 
         WHERE 
             FLO_FKL LIKE '%мс%' OR
             FLO_FKL LIKE '%категория%' OR
             FLO_FKL LIKE '%категория 3%' OR
             FLO_FKL LIKE '%категория 4%' OR
             FLO_FKL LIKE '%категория 5%' OR      
             FLO_FKL LIKE '1' OR
             FLO_FKL LIKE '2' OR
             FLO_FKL LIKE '3' OR
             FLO_FKL LIKE '5' OR
             FLO_FKL LIKE '4' AND 
             FLO_DSU IS NULL) AS subquery
END

怎么了?

连接到数据库的用户coolman必须具有执行存储过程的权利。就是这样。

最新更新