[英]How can I combine data from form and from three mysql tables to insert data in another table with php?
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'";
Something doesn't work with this code? 这段代码不起作用吗? Could anyone help with this code or some better method?
任何人都可以帮助使用此代码或更好的方法吗?
$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' ";
Mistakes you make 你犯的错误
1. Don't use implicit join syntax, it leads to cross joins; 1.不要使用隐式联接语法,它会导致交叉联接; always use explicit join syntax instead.
始终改用显式联接语法。
2. You did not have any join criteria. 2.您没有任何加入条件。
3. All $vars need to be escaped always. 3.所有$ vars必须始终被转义。
4. All $vars, be they numbers or not need to be quoted in the SQL-statement. 4.所有$ vars,无论是否为数字,都需要在SQL语句中引用。
5. Minor syntax error in the insert statement. 5. insert语句中的次要语法错误。
您不应该在选择之前插入VALUES吗?
INSERT INTO maticna (...) VALUES (SELECT ...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.