关于多查询的澄清

时间:2016-08-04 01:01:04

标签: php mysql

我正在尝试执行2个查询,但每当我在线查看有关多个查询的指南时,它都没有执行任何一个查询。

我在第一个查询中尝试做的是在当前在colHistory上的记录上插入或添加用户在$ HISTORY上输入的内容;即:

colHistory上的当前数据:

A

用户在$ HISTORY上输入'B',语法应该在当前记录的'A'上添加'B',或'AB'。然后使用第二个查询来更新此特定行上的所有其他记录或列。

这是代码(请注意'...'表示更多不必要的代码):

 $query  = INSERT INTO tbInventory SET colHistory='$HISTORY' WHERE colSerno='$SERIALNUM';";
 $query .= "UPDATE tbInventory SET 

     colImage='$IMAGE',
     colSerno='$SERIALNUM',

     ...
     ...

     colHistory=''
     WHERE colSerno='$SERIALNUM'"; 

     mysqli_multi_query($con,$query);

请注意我在从表单插入数据之前将colHistory声明为''。我不确定我是否在这方面做得对。有什么我想念的吗?

*编辑:

我已经尝试逐个执行查询:

mysqli_query($con,"INSERT INTO tbInventory SET colHistory='$HISTORY' ");
mysqli_query($con,"UPDATE tbInventory SET   
...
...

colHistory=''
WHERE colSerno='$SERIALNUM'";

然而它似乎也没有用,整个事情都被忽略了。

(**我在上面的代码块下面有一个脚本,我可以在那里打印结果,它确实运行了)

2 个答案:

答案 0 :(得分:2)

我可以告诉你为什么你的第一个查询被破坏了。     INSERT INTO tbInventory SET colHistory =' $ HISTORY'

此查询使用UPDATE语法,但您告诉查询处理器期望INSERT INTO语法。因此查询无法执行。

决定是否需要更新现有记录或插入新记录并更改查询以反映该记录。 (更改INSERT INTO更新或更改"设置colHistory =' $ History'""值(' $ History',' col2Val& #39;等等..")

至于你的第二个查询,语法看起来不错,但是由于你没有发布整个查询,很难说出那里发生了什么。如果您可以显示更多该查询,我可以更新此回复。

这是关于插入与更新的一个很好的问题。

What are differences between INSERT and UPDATE in MySQL?

答案 1 :(得分:0)

我最终删除了多查询方法,但我确实通过某种方式作弊得到了我的预期结果:





我分配了旧数据或当前在数据上的数据colHistory单元格,显示它,但我禁用了textarea。然后,我在脚本中创建了一个隐藏的文本框,其中包含旧数据,然后将其隐藏到用户视图中。





然后我将两个textareas连接到我创建的新用户,用户可以修改,模拟想要的结果。