[英]PHP/MySql insert statement not working
我以前從未做過,這是我第一次遇到這種情況
這是我創建的代碼:
$query = mysql_query("INSERT INTO customerinfo (CustomerID, FirstName, LastName, PhoneNumber, PhoneNumber, PhoneNumber, Email, Symptoms) VALUES ('', '{$first}', '{$last}', {$codearea}, {$threedigit}, {$fourdigit}, '{$email}')", $connection);
如您所見,我的表有6列,分別是:
現在,當客戶填寫表格時,應該將其插入數據庫中。 但是,如果您看一下我的插入語句,由於該表單在HTML頁上有3個字段(代碼區,前綴和行號),因此我將PhoneNumber列列出了3次,並且我希望所有三個字段都插入到PhoneNumber列中。 我怎樣才能做到這一點?
謝謝!
您只需要將它們與串聯即可.
在PHP中插入為單個字段。 您可以在MySQL中做類似的事情,但是有點混亂。
如果您在表單中提示輸入單獨的區號/前綴/行數據,則也應在數據庫中將它們分開保存-三個單獨的字段,而不是單個“電話號碼”字段。
但是,如果不可能,則將PHP中的值連接起來:
INSERT INTO ... (..., PhoneNumber, ...) VALUES (..., '{$codearea}-{$threedigit}-{$fourdigit}', ...)
在插入之前,您將需要使用PHP將3個HTML表單字段合並在一起:
$vPhoneNumber
= $part1 . $part2 . $part3
= $part1 . $part2 . $part3
然后,您可以在SQL中插入$vPhonenumber
。
使用變量來存儲所有相關的電話值, 如下所示:
$phoneNumber = $_POST['codearea'] + " " + $_POST['threedigit'] + " " + $_POST['fourdigit'];
然后,將查詢更改為:
INSERT INTO customerinfo
(CustomerInfo, FirstName, LastName, PhoneNumber, Email, Symptoms)
VALUES
('', '{$first}', '{$last}', '{$phoneNumber}', '{$email}')", $connection);
如果您必須在3個字段中將數據庫中的數據呈現給html,則您正在使用的此方法將使您的工作困難。 可能需要在3中“分解”電話字符串。如果您在數據庫表中僅使用一個html字段或3個列,那就更好了。
$query = mysql_query(
"INSERT INTO customerinfo (
CustomerInfo,
FirstName,
LastName,
PhoneNumber,
Email,
Symptoms
) VALUES (
'',
'".$first."',
'".$last."',
'".$codearea.$threedigit.$fourdigit."',
'".$email."',
'".$symptoms."'
)", $connection);
無法在一個字段中存儲三個值。
你必須
在執行查詢之前,將值連接成一個字符串。
$phone = $codearea . $threedigit . $fourdigit;
$query = mysql_query("INSERT INTO customerinfo (CustomerID, FirstName, LastName, PhoneNumber, Email, Symptoms) VALUES ('', '{$first}', '{$last}', '{$phone}', '{$email}')", $connection);
不建議使用PHP mysql_
,請改用http://php.net/pdo 。
正確地轉義您的列名,並使用PDO准備好的語句來設置綁定。
INSERT INTO `customerinfo` (`CustomerInfo`, `FirstName`, `LastName`) VALUES (:customer_info, :first_name, :last_name);
一旦有了這個,就可以像這樣執行查詢。
$sth = $db->prepare([the query from the above]);
$sth->execute(array('customer_info' => implode('; ', array([data that you want to concatenate])), 'first_name' => 'name', 'last_name' => 'name'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.