PHP - 获取 ADODB 中受影响的行
PHP - Get affected rows in ADODB
我使用 ADODB 创建到我的数据库的连接。我更新了我数据库中的数据,没有错误。问题是我无法通过 Affected_Rows()
获得受影响的行数。我尝试使用非常简单的代码,但它不起作用。这是我的代码:
$sql = "UPDATE User SET Name=N'MyName' WHERE Id=1";
$conn = new COM ("ADODB.Connection") or die("Cannot start ADO");
$cs = "provider=sqloledb;"."server=localhost;database=Test;uid=Admin;pwd=123456;Max Pool Size=100";
$conn->open($cs);
//there is no error in connecting process. I can add, update, delete normally.
if($conn->Execute($sql) === false)
{
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->ErrorMsg(), E_USER_ERROR);
}
else
{
echo $conn->Affected_Rows(); //<-- Error in here
}
我在 here. My code above is almost same with example here 中阅读过有关此功能的信息。
有没有其他方法可以获取 ADODB 中受影响的行数-PHP?
关于Affected_Rows()
,我不知道为什么它不起作用。
还有另一种非常简单的方法可以在执行查询后获取受影响的行数。
$conn->Execute($sql,$affected_rows);
echo $affected_rows;
$affected_rows
return 来自 Execute 函数的值将等于该查询的受影响行数。
只是为了标记。
您的代码:
echo $conn->Affected_Rows()
是ADODB SDK方法:http://adodb.org/dokuwiki/doku.php?id=v5:reference:connection:affected_rows
不是本机 COM("ADODB.connection") 方法。
但我遇到了同样的问题,因为这个方法 return "variant Object" 所以我无法获得该值。
我通过编辑 SDK 源文件修复了这个问题:adodb5/drivers/adodb-ado5.inc.php #44 行:
$this->_affectedRows =new VARIANT;
至:
$this->_affectedRows = null;
然后 Affected_Rows() 方法可以 return 对我来说是一个实数。
我使用 ADODB 创建到我的数据库的连接。我更新了我数据库中的数据,没有错误。问题是我无法通过 Affected_Rows()
获得受影响的行数。我尝试使用非常简单的代码,但它不起作用。这是我的代码:
$sql = "UPDATE User SET Name=N'MyName' WHERE Id=1";
$conn = new COM ("ADODB.Connection") or die("Cannot start ADO");
$cs = "provider=sqloledb;"."server=localhost;database=Test;uid=Admin;pwd=123456;Max Pool Size=100";
$conn->open($cs);
//there is no error in connecting process. I can add, update, delete normally.
if($conn->Execute($sql) === false)
{
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->ErrorMsg(), E_USER_ERROR);
}
else
{
echo $conn->Affected_Rows(); //<-- Error in here
}
我在 here. My code above is almost same with example here 中阅读过有关此功能的信息。 有没有其他方法可以获取 ADODB 中受影响的行数-PHP?
关于Affected_Rows()
,我不知道为什么它不起作用。
还有另一种非常简单的方法可以在执行查询后获取受影响的行数。
$conn->Execute($sql,$affected_rows);
echo $affected_rows;
$affected_rows
return 来自 Execute 函数的值将等于该查询的受影响行数。
只是为了标记。
您的代码:
echo $conn->Affected_Rows()
是ADODB SDK方法:http://adodb.org/dokuwiki/doku.php?id=v5:reference:connection:affected_rows
不是本机 COM("ADODB.connection") 方法。
但我遇到了同样的问题,因为这个方法 return "variant Object" 所以我无法获得该值。
我通过编辑 SDK 源文件修复了这个问题:adodb5/drivers/adodb-ado5.inc.php #44 行:
$this->_affectedRows =new VARIANT;
至:
$this->_affectedRows = null;
然后 Affected_Rows() 方法可以 return 对我来说是一个实数。