【问题标题】:How can I combine data from form and from three mysql tables to insert data in another table with php?如何将表单和三个 mysql 表中的数据结合起来,用 php 在另一个表中插入数据?
【发布时间】:2011-10-07 09:09:25
【问题描述】:
sql="INSERT INTO maticna
   (formCompany,formPlace,formDate,formPerson,formCollect
   ,formOffer,formDescribe,formBarkod,formSubject,formWorking
   ,formStatus,formRevision) 
SELECT 
  company.formCompany, company.formPlace
  , $formDate AS formDate
  , $formPerson AS formPerson
  , $formCollect AS formCollect
  , $formOffer AS formOffer
  , $formDescribe AS formDescribe
  , $formBarkod AS formBarkod
  , inv.formSubject, work.rnNo
  , $formStatus AS formStatus
  , $formRevision AS formRevision)"
 ."FROM company, inv, work 
 WHERE inv.formBarkod='$formBarkod'";

这段代码有什么问题吗?任何人都可以提供此代码或更好的方法吗?

【问题讨论】:

  • 还有额外的)。顺便说一句,您通过上述方法得到了什么错误??
  • @MasterCassim,它不会向表中写入任何内容

标签: php mysql webforms


【解决方案1】:
$formDate = mysql_real_escape_string($formdate);
$formPerson = mysql_real_escape_string($formPerson);
....
//For each and every $var you inject in the SQL statement.

$sql="INSERT INTO maticna
   (formCompany,formPlace,formDate,formPerson,formCollect
   ,formOffer,formDescribe,formBarkod,formSubject,formWorking
   ,formStatus,formRevision) 
SELECT 
  c.formCompany, c.formPlace
  , '$formDate' AS formDate
  , '$formPerson' AS formPerson
  , '$formCollect' AS formCollect
  , '$formOffer' AS formOffer
  , '$formDescribe' AS formDescribe
  , '$formBarkod' AS formBarkod
  , i.formSubject, w.rnNo
  , '$formStatus' AS formStatus
  , '$formRevision' AS formRevision
FROM company c
INNER JOIN work w ON (w.id = i.work_id)
INNER JOIN inv i ON (i.company_id = c.id)
WHERE i.formBarkod= '$formBarkod' ";

你犯的错误
1、不要使用隐式连接语法,会导致交叉连接;始终使用显式连接语法。
2. 您没有任何加入条件。
3. 所有的 $vars 都需要被转义。
4. 所有的 $vars,无论是数字还是不需要在 SQL 语句中引用。
5. 插入语句中的小语法错误。

【讨论】:

  • 我一直在使用转义的 $vars 但我没有在这里写。谢谢,我会尽快试试你的代码。
  • @mdakic,请注意mysql_real_escape_string() 仅在如果您引用您的$vars 时有效。如果你不这样做,那么它就不起作用!
【解决方案2】:

你不应该在选择之前插入 VALUES 吗?

INSERT INTO maticna (...) VALUES (SELECT ...)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 2014-09-09
  • 2012-09-13
  • 2013-04-25
  • 2020-01-30
  • 1970-01-01
  • 2014-09-09
相关资源
最近更新 更多