MS SQL查询在PHP中失败,但在MS SQL Server Management Studio中未失败
我用php和odbc驱动程序执行这个查询MS SQL查询在PHP中失败,但在MS SQL Server Management Studio中未失败,php,sql,Php,Sql,我用php和odbc驱动程序执行这个查询 $sql="DECLARE @Auftrag int; DECLARE @date_now datetime = getdate(); EXEC @Auftrag=EHS.dbo.SP_ANZEIGE @Tablet=1, @Status=0, @KuNr='K015538'; SELECT 'generatedID'=@Auftrag;"; $res = odbc_exec($db1_link, $sql) or die(odbc_err
$sql="DECLARE @Auftrag int;
DECLARE @date_now datetime = getdate();
EXEC @Auftrag=EHS.dbo.SP_ANZEIGE
@Tablet=1,
@Status=0,
@KuNr='K015538';
SELECT 'generatedID'=@Auftrag;";
$res = odbc_exec($db1_link, $sql) or die(odbc_errormsg()); // returns resource(13)
$firstRow = odbc_fetch_array($res); // dies error
如果执行odbc_fetch_数组,将抛出错误“此结果索引中没有可用的元组”
如果我在ManagementStudio中运行完全相同的查询,一切正常。它显示了计算生成的ID。有什么区别
问候Alex尝试在查询前添加以下前缀:
set nocount on
这会阻止SQL Server发送行数更新,UNIX客户端有时会将其误认为实际的行集。我也遇到了同样的问题。就我而言,我是这样执行的
$sql = "SELECT * FROM table1";
$resultSet = odbc_exec($sqllink, $sql);
while ($data = odbc_fetch_array($resultSet)) {
$sql = "SELECT * FROM table2";
$resultSet2 = odbc_exec($sqllink, $sql);//failed here
while ($data2 = odbc_fetch_array($resultSet2)) {
//something here
}
}
我就这样改变了,而且成功了
$sql = "SELECT * FROM table1";
$resultSet = odbc_exec($sqllink, $sql);
// Create an array and store the results
$queryResult = array();
while ($data = odbc_fetch_array($resultSet)) {
// push the required content into the array
$queryResult[$data['id']]['name'] = $data[name];
}
foreach($queryResult as $row) {
$sql = "SELECT * FROM table2";
$resultSet2 = odbc_exec($sqllink, $sql);
while ($data2 = odbc_fetch_array($resultSet2)) {
// something here
}
}
向我们展示如何在phpTry中运行此查询,以在查询前加上前缀:
set nocount on
。这会阻止SQL Server发送行数更新,UNIX客户端有时会将其误认为是实际的行集。哇。。。我不相信你真的做到了。我不知道确切的原因,但我真的很高兴:)谢谢