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

問題はストアド プロシージャにはありません。リソースをオブジェクトとして使用します。それは正しくありません。

また、prepare ステートメントを 1 つのクエリだけに使用する理由はありません。

次のコードが必要です:

$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 に答える