ADO 到 MySQL:CursorType 和 LockType
ADO to MySQL: CursorType and LockType
我正在尝试将 ASP-ADO
代码转换为 PHP-MySQL
代码,接下来要转换的代码块如下:
Function FindBankName(bankNo)
If IsNull(bankNo) Or IsNumeric(bankNo) = False Then Exit Function
Dim recordSet
Set recordSet = Server.CreateObject("Adodb.Recordset")
recordSet.Open "SELECT Id, MainPos FROM bank WHERE MainPos = "& bankNo &"", db, 1, 3
If Not recordSet.EOF Then
FindBankName = recordSet("Id")
End If
recordSet.Close
Set recordSet = Nothing
End Function
Open
函数的最后两个参数 1 和 3 在 Microsoft 文档中定义为:
CursorType
Optional. A CursorTypeEnum value that determines the type of cursor that the provider should use when opening the Recordset. The default value is adOpenForwardOnly.
LockType
Optional. A LockTypeEnum value that determines what type of locking (concurrency) the provider should use when opening the Recordset. The default value is adLockReadOnly.
MySQLi 中是否有相应的选项涵盖它们?我应该如何进行?我可以忽略它们吗?
CursorType 1 是adOpenKeyset,这意味着允许在记录集中进行所有类型的移动,您可以看到更改但看不到其他用户添加的内容。换句话说,对于代码仅获取第一条记录的 ID 的记录集,这有点矫枉过正。 LockType 3 是 adLockOptimistic,这意味着记录仅在更新时被锁定。同样,对于您根本不进行任何更新的记录集,它超出了您的需要。
然而,综上所述,我们都倾向于适应适用于大多数目的的游标和锁类型(或者,更有可能的是,我们转向 rs.Open
以外的其他方法),并且对于这样的查询从一行返回两列,你用什么真的没有区别。
底线是,只要您可以设置 MySQL 查询以允许您执行所需的操作——读取、更新、添加、删除——,您就可以安全地忽略特定参数由 ADO 使用。
我正在尝试将 ASP-ADO
代码转换为 PHP-MySQL
代码,接下来要转换的代码块如下:
Function FindBankName(bankNo)
If IsNull(bankNo) Or IsNumeric(bankNo) = False Then Exit Function
Dim recordSet
Set recordSet = Server.CreateObject("Adodb.Recordset")
recordSet.Open "SELECT Id, MainPos FROM bank WHERE MainPos = "& bankNo &"", db, 1, 3
If Not recordSet.EOF Then
FindBankName = recordSet("Id")
End If
recordSet.Close
Set recordSet = Nothing
End Function
Open
函数的最后两个参数 1 和 3 在 Microsoft 文档中定义为:
CursorType
Optional. A CursorTypeEnum value that determines the type of cursor that the provider should use when opening the Recordset. The default value is adOpenForwardOnly.
LockType
Optional. A LockTypeEnum value that determines what type of locking (concurrency) the provider should use when opening the Recordset. The default value is adLockReadOnly.
MySQLi 中是否有相应的选项涵盖它们?我应该如何进行?我可以忽略它们吗?
CursorType 1 是adOpenKeyset,这意味着允许在记录集中进行所有类型的移动,您可以看到更改但看不到其他用户添加的内容。换句话说,对于代码仅获取第一条记录的 ID 的记录集,这有点矫枉过正。 LockType 3 是 adLockOptimistic,这意味着记录仅在更新时被锁定。同样,对于您根本不进行任何更新的记录集,它超出了您的需要。
然而,综上所述,我们都倾向于适应适用于大多数目的的游标和锁类型(或者,更有可能的是,我们转向 rs.Open
以外的其他方法),并且对于这样的查询从一行返回两列,你用什么真的没有区别。
底线是,只要您可以设置 MySQL 查询以允许您执行所需的操作——读取、更新、添加、删除——,您就可以安全地忽略特定参数由 ADO 使用。