【问题标题】:SQL state imssp server 2100 parameter error PDOSQL状态imssp服务器2100参数错误PDO
【发布时间】:2020-11-10 19:11:27
【问题描述】:

我得到:

错误。 SQLSTATE[IMSSP]: 尝试绑定参数号 65536. SQL 服务器在 LINQ to SQL 查询中最多支持 2100 个参数。一世 用 php 连接到 mssql 服务器。我已经安装了“微软 Drivers for PHP for SQL Server”并在扩展部分添加了一些行 的 php.ini。

我使用的是 Windows 7 和 IIS 7.5。我检查了来自phpnifo() 的结果。加载配置文件 C:\Program Files\PHP\php.ini.

我在哪里犯错了?我想向 SQL Server 发出请求。

    include('connect.php');
    try
    {
        
        $query = $conn->prepare("INSERT INTO [deneme].[dbo].[deneme_tablosu] ([ad], [soyad]) VALUES (?,?)");
        
        $query->bindParam(':ad',$ad, PDO::PARAM_STR);
        $query->bindParam(':soyad',$soyad,PDO::PARAM_STR);
        
        $ad=$_POST["ad"];
        $soyad=$_POST["soyad"];
        $query->execute();

        echo "successful";
    }

    catch(Exception $e)
    {   
        echo 'Error'.$e->getMessage();
        
    }

【问题讨论】:

    标签: php jquery sql-server pdo


    【解决方案1】:

    您需要使用命名参数或占位符,不能同时使用。以下示例,基于问题中的代码,是一个可能的解决方案:

    使用占位符:

    <?php
    include('connect.php');
    try
    {
        
        $query = $conn->prepare("
           INSERT INTO [deneme].[dbo].[deneme_tablosu] ([ad], [soyad]) 
           VALUES (?, ?)
        ");
        $ad    = $_POST["ad"];
        $soyad = $_POST["soyad"];
        $query->bindParam(1, $ad, PDO::PARAM_STR);
        $query->bindParam(2, $soyad, PDO::PARAM_STR);
        if ($query->execute()) {
            echo "successful";
        } else {
            echo "error";
        }   
    }
    
    catch(Exception $e)
    {   
        echo 'Error'.$e->getMessage();
    }
    

    使用命名参数:

    <?php
    include('connect.php');
    try
    {
        
        $query = $conn->prepare("
           INSERT INTO [deneme].[dbo].[deneme_tablosu] ([ad], [soyad]) 
           VALUES (:ad, :soyad )
        ");
        $ad    = $_POST["ad"];
        $soyad = $_POST["soyad"];
        $query->bindParam(':ad', $ad, PDO::PARAM_STR);
        $query->bindParam(':soyad', $soyad, PDO::PARAM_STR);
        if ($query->execute()) {
            echo "successful";
        } else {
            echo "error";
        }   
    }
    
    catch(Exception $e)
    {   
        echo 'Error'.$e->getMessage();
        
    }
    

    【讨论】:

    • 你抓住了它!谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2018-02-19
    • 2022-08-04
    • 2021-04-24
    相关资源
    最近更新 更多