这是我一直坚持的数据库类的过去纸质问题。我只是在准备我的考试,所以可以给出答案。
考虑以下架构:
Borrow(userid: string, callnum: string, copynum: integer, checkout: date, return: date)
这是有错误的 PHP 函数。
function countCheckedOutBookCopies($callnum){
$sql = "SELECT COUNT(*) AS bookcount FROM borrow
WHERE return = null and callnum = '".$callnum."'";
$stid = oci_parse($this->conn, $sql); //assume $this->con is correct
if($row = oci_fetch_object($stid)){
return $row->bookcount;
} else{
return -1;
}
}
有3个问题。
1.找到错误并修复它。
2.出现另一个错误,修复它。
3.尽管一切都已修复,但功能始终如一return -1
。为什么是这样?
我只熟悉使用 MySQL 的程序 PHP。但是我尝试运行代码并导致 $stid 一直返回布尔值,因为我不知道哪个部分是正确的,哪个部分是错误的。
这是我尝试过的事情
1.更改'".$callnum."'
为简单'$callnum'
(因为这是我在 MySQL 中一直这样做的方式)
2.return = null
更改为return = 'null'
(但我不认为是这种情况)
COUNT(*)
3.也许得到而不是仅仅的概念有问题*
编辑:只是一个想法:我觉得 oci8 和 MySQL 做的事情几乎相同,但是有理由更喜欢一个吗?我敢肯定 MySQL 是比较流行的,但我的学校似乎更喜欢使用 oci8 做考试题
提前致谢!