【发布时间】:2013-10-02 23:06:08
【问题描述】:
我有一个表单按钮,我需要根据用户输入以及该输入是否已存在于我的数据库中来做两件不同的事情。如果输入不存在,则该按钮将创建一个新记录。如果它确实存在,那么现有记录将被更新。
这是我现在的 PDO 查询:
/* First, we need to discover whether the Proposal No. entered already exists in the
database. If it doesn't, then a new record will be created. If
it does, then an existing record will be updated. */
$pNoExists = $con->prepare("SELECT ProposalNo FROM ptfp1");
$pNoExists->execute();
$row = $pNoExists->fetch(PDO::FETCH_ASSOC);
当我运行 $row = $pNoExists->fetch(PDO::FETCH_ASSOC);通过一个while循环,该字段的所有值都存在。现在我只需要一些关于如何在我的按钮设置中使用它的指导。这就是我想做的:
if($_POST['ButtonPush'] && input doesn't exist) {
Create new record;
}
else {
Update existing record;
}
很简单,对吧?但它在躲避我。
【问题讨论】:
-
在 SQL 语句中添加 WHERE 子句可能会有所帮助,而不是获取每个提案然后在 PHP 中循环:让数据库做它设计好的事情
-
你可以使用
$count = mysqli_num_rows($con, "SELECT * FROM table WHERE ProposalNo = '$value'");如果$count大于1,更新现有的。 -
为什么不直接使用
INSERT和ON DUPLICATE KEY UPDATE子句一步到位? -
@MarkBaker:谢谢。这就是我最终做的。 :-)
-
@Bamar:谢谢!很有帮助。
标签: php mysql pdo parameterized-query