更新表中的多个字段

问题描述:

我的问题是我应该做什么而不是我应该做的。更新表中的多个字段

我正在开发许多在线questionairres与许多问题和 因此在每个问题airre许多答案。

人们可以返回到问卷,直到某个日期,所以一个插入和 需要许多更新。

通常情况下,人们会检查是否从数据从表中读取数据时发生了更改,并且只更新更改或仅替换问题机会表中表中的所有数据。例如,如果有人只是选择单选按钮1而不是2访问,那么我是否必须更新所有字段。

谢谢你的任何帮助,你可以给我。

贾斯汀

不,您可以一次更新一列(字段)。使用PDO准备的语句,例如,

$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 

$sql = "UPDATE survey_22 SET question_43=? WHERE user_id=?"; 

$stmt = $dbh->prepare($sql); 
$stmt->execute(array($new_answer, $user_id)); 
+0

谢谢你,但我需要确定哪些字段需要更新。我如何确定哪些字段是我更新的字段? – 2013-03-26 19:42:11

+0

@JustinOakley你的意思是“字段”作为记录(行)或记录的部分(列)? – Voitcus 2013-03-26 19:47:13

+0

啊,我明白你在说什么了。我会说,即使大多数(甚至全部)没有改变,一次更新所有列也是完全正确的。也就是说,检查每个字段的变化比仅仅“闯入”数据的效率要低。唯一需要检查的情况是,如果您不希望在没有更改的情况下更新该行的时间戳:在这种情况下,无论如何您都必须检查所有字段。 – 2013-03-26 19:48:16

在我看来,您可以更新所有的字段,因为这不会花费太长时间。在不更新不需要更新的字段时,您将节省什么,您将无法确定它们。

当然,一些基准将是少数,但我个人更新所有这些,这就是我一直这样做。您可以将其命名为“懒惰”,但另一个优点是代码更简单。

+0

谢谢Voitcus。我这么认为,但很高兴知道别人如何做事。贾斯汀 – 2013-03-26 19:56:26