![](/img/trans.png)
[英]Insert form data in one table and then update an enum value in a different table?
[英]insert form data into one table, then insert specific form data in to table 2 and update enum value?
我正在嘗試將表格數據插入到我的表“ supplier_registration”中,但是這不起作用,我正在獲取mysql“ ERROR”,我不確定為什么會這樣。
我也想將相同的表單數據插入第二個表“ supplier_session”,但是這次僅插入表單數據的特定位“ $ cname”和“ $ creg”。
當用戶登陸頁面時,會將IP地址插入到表“ supplier_session”中,因此,在提交此表單時,我還希望Supplier_session表將枚舉值“ form1_complete”從“否”更新為“是”,該用戶的ip或“ user_IP” '存在於表格行中。 我正在嘗試通過運行三個查詢來解決這個問題,但無法正常工作,請有人能告訴我我要去哪里了。 謝謝
數據庫:
ID(AI) | company_name | company_reg_number | company_incorp_date | company_address | company_postcode | contact_name | contact_number | contact_email | company_vat_number | date_time | user_IP
碼:
<?php
session_start();
$db_hostname = 'localhost';
$db_database = 'hewden1';
$db_username = 'root';
$db_password = '';
$db_server = mysql_connect($db_hostname, $db_username, $db_password)
or die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());
$cname = $_POST['cname'];
$creg = $_POST['creg'];
$address = $_POST['address'];
$post = $_POST['post'];
$contactn = $_POST['contactn'];
$contactt = $_POST['contactt'];
$contacte = $_POST['contacte'];
$vat = $_POST['vat'];
$incorp = $_POST['incorp'];
$ipaddress = $_SERVER["REMOTE_ADDR"];
$sql="INSERT INTO supplier_registration (company_name, company_reg_number, company_incorp_date, company_address, company_postcode, contact_name, contact_number, contact_email, company_vat_number, date_time, user_ip)
VALUES ('$cname', '$creg', '$incorp', $address', '$post', '$contactn', '$contactt', '$contacte', '$vat', NOW(), '$ipaddress')";
$result = mysql_query($sql);
$qry2 = "INSERT INTO supplier_session (company_reg_number, company_name) VALUES('$creg','$cname') WHERE user_IP = '$ipaddress'";
$result = @mysql_query($qry2);
$qry3="UPDATE supplier_session SET form1_completed = 'Yes' WHERE form1_completed = 'No' AND user_IP = '$ipaddress'";
$result = mysql_query($q);
if($result){
header("Location: index.php?registration=sucess");
}else {
echo "ERROR";
}
?>
的HTML:
<form name="myForm" id="myform" action="company_info_process.php" onsubmit="return validateForm()" method="post">
<input type="text" id="field_cname" name="cname" class="field_cname">
<input type='text' name='creg' id="field_creg">
<input type='text' name='incorp' id="field_incorp">
<input type='text' name='vat' id="field_vat">
<input type='text' name='contactn' id="field_contactn">
<input type="text" name="contactt" id="field_contactt">
<input type="text" id="field_contacte" name="contacte">
<input type="text" id="field_address" name="address">
<input type="text" id="field_post" name="post"/>
首先,您在第三個查詢中調用了錯誤的變量。
更改$result = mysql_query($q);
到$result = mysql_query($qry3);
同樣,使用INSERT()
語法,您不能具有WHERE()
子句。 你會發現唯一的一次INSERT
,有一個WHERE
子句是當你使用INSERT INTO...SELECT
語句。
除此之外,在執行SELECT()
或UPDATE()
時,通常使用WHERE
子句。
快速旁注:我注意到您沒有結束</form>
標記。 如果這是您的實際代碼,請添加它。
在頁面頂部使用錯誤報告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
另外,使用:
else{
echo mysql_errno($db_server) . ": " . mysql_error($db_server) . "\n";
}
代替:
else {
echo "ERROR";
}
訪問PHP.net,以獲取有關錯誤報告的更多信息。
腳注:
mysql_*
函數棄用通知:
http://www.php.net/manual/zh/intro.mysql.php
自PHP 5.5.0起不推薦使用該擴展,不建議編寫新代碼,因為將來會刪除該擴展。 相反,應使用mysqli或PDO_MySQL擴展名。 另請參見MySQL API概述,以獲取選擇MySQL API時的更多幫助。
這些功能使您可以訪問MySQL數據庫服務器。 有關MySQL的更多信息,請參見» http://www.mysql.com/ 。
可以在» http://dev.mysql.com/doc/中找到MySQL的文檔。
在您運行對mysql_query
的調用的地方,輸出它生成的所有錯誤消息:
$result = mysql_query($sql) or die(mysql_error());
應該給出哪個查詢導致錯誤以及為什么的指示。
編輯:另外,請注意您在INSERT
語句中有WHERE
子句,您不能這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.