【发布时间】:2012-03-15 22:37:09
【问题描述】:
我正在向 MySQL 数据库表中插入一行。在第一次插入时,我希望添加一个新行,但之后我只想更新该行。这就是我的做法。 Ajax 请求调用以下 php 文件:
<?php
include "base.php";
$bookID = $_POST['bookID'];
$shelfID = $_POST['shelfID'];
$userID = $_SESSION['user_id'];
$query = mysql_query("SELECT shelfID FROM shelves WHERE userID = '$userID' AND shelfID = '$shelfID' AND bookID = '$bookID'");
if (mysql_num_rows($query) == 0) {
$insert = "INSERT INTO shelves (bookID,shelfID,userID) VALUES ('$bookID','$shelfID','$userID')";
mysql_query($insert) or die(mysql_error());
} elseif (mysql_num_rows($query) == 1) { //ie row already exists
$update = "UPDATE shelves SET shelfID = '$shelfID' WHERE userID = '$userID' AND bookID = '$bookID'";
mysql_query($update) or die(mysql_error());
}
?>
就目前而言,它每次都会添加一个新行。
【问题讨论】:
-
没关系,明白了 - 我的 SELECT 语句正在根据shelfID 调用一行。如果
$shelfID不同,它将返回 0 行。