我正在构建一个使用网络服务的iOS应用。这个Web服务是用PHP构建的。
现在我正在建立一个评价电影的功能。该数据库包含以下表格:
Movie
MovieID --- Title --- DateAdded
和
Watched
UserID --- MovieID --- Rating --- DateWatched
我没有数据库中的所有电影,但我使用的是API。
评论电影的过程包括以下内容:
1. Is the movie available in the `Movie` table?
NO: Get the movie from the API and put it in the `Movie` table.
YES: Do nothing.
2. Is the movie available in the `Movie` table? (a second check)
NO: Rating the movie failed. Send back an error.
YES: Put the movie with rating in the `Watched` table.
现在问题是电影第一次被评级,所以当它不在Movie
表中时,它会被插入但在第二次检查时不可见。所以我猜测PHP比数据库更快。
为了检查这一点,我在第二次检查之前放了sleep(4)
。当我这样做时,它可以工作。
支票如下:
$stmt = $this -> db -> prepare
("
SELECT MovieID
FROM Movie
WHERE MovieID = ?
");
$stmt -> bind_param("i", $movieID);
$stmt -> execute();
$stmt -> store_result();
$numberOfRowsMovies = $stmt -> num_rows;
$stmt -> close();
if ($numberOfRowsMovies == 0) // movie not in DB yet
{
// insert movie into 'Movie' table
// or send FAILED message back
}
因此,在第二次检查时,$numberOfRowsMovies
为0,而它应为1.
编辑//注意事项:数据库为空。因为记录太多,所以它不会太慢。