我有这个问题..我正在尝试使用锁记录进行更新。我使用的是php,我使用oracle作为数据库。我没有完全理解,但我已设法复制以前的开发人员代码并使其工作。
使用odbc_exec(),odbc_fetch_row()。我认为这应该用于微软访问数据库。但我不知道。我也使用jquery来获取这个php文件(使用jquery post)并附加到当前页面。
但现在我的大四学生要求我确保如果一个人正在编辑一条记录。然后另一个不能再编辑了。他们说有些事情没有关闭连接。加载1页后(当它使用jquery来获取像我一样的页面时)php可以不关闭与数据库的连接吗?据我所知,如果页面被加载。与数据库的连接已关闭。
我想试试这段代码,但我担心如果我错了,连接会挂起。
现在我的sql就像选择所有公司一样。
$sqlStr ="select * from company";
$rs = odbc_exec($GblConnOra , $sqlStr);
while (odbc_fetch_row($rs)){
$company_name=odbc_result($rs,"company_name");
$company_id=odbc_result($rs,"company_id");
}
选择要编辑的公司
$sqlStr ="select * from company where company_id='34'";
$rs = odbc_exec($GblConnOra , $sqlStr);
while (odbc_fetch_row($rs)){
$company_name=odbc_result($rs,"company_name");
}
更新
$sqlStr ="update compay set company_name=? where company_id=?";
$stmt = odbc_prepare($GblConnOra , $sqlStr);
$res = odbc_execute($stmt, array($company_name, $company_id));
我认为sql会是这样的。锁定记录。
$sqlStr ="select * from company for update skip locked";
$rs = odbc_exec($GblConnOra , $sqlStr);
while (odbc_fetch_row($rs)){
$company_name=odbc_result($rs,"company_name");
$company_id=odbc_result($rs,"company_id");
}
我能这样做吗?
我的sql会选择要编辑的行吗?
我的sql用于更新行的内容是什么?
根据我的理解,这个锁将在更新提交或回滚被调用后释放。