致命错误:在非对象上调用成员函数execute().在SQL SERVER SP PHP


Fatal error: Call to a member function execute() on a non-object ... in SQL SERVER SP PHP

我在连接我的SQL SERVER存储过程到我的PHP表单的问题…它告诉我一个错误

致命错误:在非对象上调用成员函数execute()…

请帮助我在SQL SERVER存储过程新

MY PHP CODE:

<?php
$serverName = " BONGBONG-PC ";  
$connection = array( "Database"=>"benefit_insurance"); 
$conn = sqlsrv_connect( $serverName, $connection); 

$btn=$_POST['button']; 
$fname = $_POST['fname']; 
$lname=$_POST['lname']; 

TRY{
    if($btn=='LOGIN'){ 
        $stmt = sqlsrv_prepare ($conn,'CALL insert_record(@fname, @lname)'); 
        if( !$stmt ) { 
            die( print_r( sqlsrv_errors(), true)); 
        } 

        $stmt->execute(array( 
            '@fname' => $fname, 
            '@lname' => $lname, 
        )); 
        echo "<script language=javascript>alert('ACCOUNT SAVED')</script>";
    }
} 

catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
    die();
} 
?> 

问题不在存储过程中。您使用资源作为对象。这是不正确的

没有理由只对一个查询使用prepare语句。

你需要下一个代码:

$stmt = sqlsrv_query ($conn,'EXECUTE insert_record @fname = ?, @lname = ?', array($fname, $lname)); 
if( $stmt === false ) { 
    die( print_r( sqlsrv_errors(), true)); 
}