我不认为 SQL Server 的 PHP 驱动程序(sqlsrv扩展名)支持完全等效的oci_define_by_name()功能(将 PHP 变量与查询提取的列相关联)。可能适当的方法是使用sqlsrv_fetch_array()函数来检索下一行数据。请注意,您可以使用它sqlsrv_query()来准备和执行语句,因为(如文档中所述)此函数非常适合一次性查询,并且应该是执行查询的默认选择,除非有特殊情况适用。
甲骨文示例:
<?php
if (isset($_GET['Refdti'])) {
$Refdti = $_GET['Refdti'];
}
...
$ora_stmt = oci_parse($ora_connect, $request);
if (!$ora_stmt ) {
$retour = array('success' => false, 'msg' => 'Problem oci_parse requete='.$request);
oci_close($ora_connect);
return;
}
oci_define_by_name($ora_stmt, 'REFDTI' , $refdti);
oci_execute($stid);
while (oci_fetch($ora_stmt)) {
echo $refdti."\n";
}
...
?>
SQL Server 示例:
<?php
if (isset($_GET['Refdti'])) {
$Refdti = $_GET['Refdti'];
}
...
$ms_stmt = sqlsrv_query($ms_connect, $request);
if ($ms_stmt === false ) {
$retour = array('success' => false, 'msg' => 'Problem sqlsrv_query requete='.$request);
sqlsrv_close($ms_connect);
return;
}
while ($row = sqlsrv_fetch_array($ms_stmt, SQLSRV_FETCH_ASSOC)) {
echo $row["REFDTI"]."\n";
}
...
?>