1

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

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

请帮助我是 SQL SERVER STORED PROCEDURE 中的新手

我的 PHP 代码:

<?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();
} 
?> 
4

1 回答 1

2

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

并且没有理由只对一个查询使用准备语句。

您需要下一个代码:

$stmt = sqlsrv_query ($conn,'EXECUTE insert_record @fname = ?, @lname = ?', array($fname, $lname)); 
if( $stmt === false ) { 
    die( print_r( sqlsrv_errors(), true)); 
} 
于 2013-06-21T04:30:38.223 回答