SQL 状态 imssp 服务器 2100 参数错误 PDO

我正进入(状态:

错误。SQLSTATE[IMSSP]:尝试绑定参数号 65536。SQL Server 在 LINQ to SQL 查询中支持最多 2100 个参数。我用 php 连接到 mssql 服务器。我已经安装了“Microsoft 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();

        

    }


回首忆惘然
浏览 81回答 1
1回答

ibeautiful

您需要使用命名参数或占位符,而不是两者都使用。以下示例基于问题中的代码,是一个可能的解决方案:使用占位符:<?phpinclude('connect.php');try{&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; $query = $conn->prepare("&nbsp; &nbsp; &nbsp; &nbsp;INSERT INTO [deneme].[dbo].[deneme_tablosu] ([ad], [soyad])&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;VALUES (?, ?)&nbsp; &nbsp; ");&nbsp; &nbsp; $ad&nbsp; &nbsp; = $_POST["ad"];&nbsp; &nbsp; $soyad = $_POST["soyad"];&nbsp; &nbsp; $query->bindParam(1, $ad, PDO::PARAM_STR);&nbsp; &nbsp; $query->bindParam(2, $soyad, PDO::PARAM_STR);&nbsp; &nbsp; if ($query->execute()) {&nbsp; &nbsp; &nbsp; &nbsp; echo "successful";&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; echo "error";&nbsp; &nbsp; }&nbsp; &nbsp;}catch(Exception $e){&nbsp; &nbsp;&nbsp; &nbsp; echo 'Error'.$e->getMessage();}使用命名参数:<?phpinclude('connect.php');try{&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; $query = $conn->prepare("&nbsp; &nbsp; &nbsp; &nbsp;INSERT INTO [deneme].[dbo].[deneme_tablosu] ([ad], [soyad])&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;VALUES (:ad, :soyad )&nbsp; &nbsp; ");&nbsp; &nbsp; $ad&nbsp; &nbsp; = $_POST["ad"];&nbsp; &nbsp; $soyad = $_POST["soyad"];&nbsp; &nbsp; $query->bindParam(':ad', $ad, PDO::PARAM_STR);&nbsp; &nbsp; $query->bindParam(':soyad', $soyad, PDO::PARAM_STR);&nbsp; &nbsp; if ($query->execute()) {&nbsp; &nbsp; &nbsp; &nbsp; echo "successful";&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; echo "error";&nbsp; &nbsp; }&nbsp; &nbsp;}catch(Exception $e){&nbsp; &nbsp;&nbsp; &nbsp; echo 'Error'.$e->getMessage();&nbsp; &nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP