如何使用PHP和SQL Server 2008调用存储过程

Dee*_*pak 4 php stored-procedures sql-server-2008

我正在使用SQL Server 2008和PHP.我想在PHP中调用存储过程.

请指导我.

问候

tee*_*one 8

读取mssql_execute()

$conn = mssql_connect($host, $user, $pass);
mssql_select_db('somedb', $conn);

// Call a simple query
$result = mssql_query('SELECT * FROM sometable', $conn);

// Release the result resource
mssql_free_result($result);

// Then execute the procedure
$proc = mssql_init('some_proc', $conn);
$proc_result = mssql_execute($proc);

// Etc...
mssql_free_statement($proc);
Run Code Online (Sandbox Code Playgroud)

编辑

读取odbc_exec()

$conn = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);
$exec = odbc_exec($conn, "CALL storedProc()");
Run Code Online (Sandbox Code Playgroud)

和一个非常好的例子来自php.net docs odbc_execute():

例子

示例#1 odbc_execute()odbc_prepare()示例在以下代码中,如果myproc的所有三个参数都是IN参数,则$ success将仅为TRUE:

$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
Run Code Online (Sandbox Code Playgroud)

如果需要使用INOUT或OUT参数调用存储过程,建议的解决方法是使用数据库的本机扩展(例如,MS SQL Server为mssql,Oracle为oci8).