想知道实现目标的最佳途径是什么。
总结一下,我有一个由ajax加载的表单,我用它来更新并将新行插入数据库。要确定它是更新还是插入,我使用下面的代码(更新的表单使用mysql查询来填充表单字段)。
我的代码看似草率而不是最佳做法。关于什么是最好的方法,还有其他建议吗?
<?
require_once("config.php");
$insert = false;
$update = false;
$targID = 0;
if(isset($_POST['targID'])){
$targID = $_POST['targID'];
$targRow = mysql_fetch_array(mysql_query("select * from events where eventid=$targID"));
$update = true;
}else{
$insert = true;
}
?>
<script type="text/javascript">
var insert = <? echo $insert; ?>+0;
var update = <? echo $update; ?>+0;
......javascript button events, validation etc based on inssert/update
</script>
答案 0 :(得分:0)
您已经在客户端知道它是更新还是插入,因为您发送或不发送POST数据项。所以我会在原始页面中编写JS来控制提交以及如何处理发回的数据。在没有看到页面其余部分的情况下编写代码很困难,但在伪代码级别,您可以执行以下操作:
希望这在某种程度上有用。
答案 1 :(得分:0)
你应该使用本机mySQL:
INSERT ... ON DUPLICATE KEY UPDATE
请参阅: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
答案 2 :(得分:0)
在客户端确定这一点有什么意义?它有什么不同吗?
对于服务器端,我使用从隐藏字段传递的$ targID。如果它大于零 - 更新,否则 - 插入。