簡體   English   中英

PHP / MySql插入語句不起作用

[英]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列,分別是:

  1. 顧客信息
  2. 名字
  3. 電話號碼
  4. 電子郵件
  5. 病征

現在,當客戶填寫表格時,應該將其插入數據庫中。 但是,如果您看一下我的插入語句,由於該表單在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);

無法在一個字段中存儲三個值。

你必須

  • 使用三列作為PhoneNumber(代碼區,前綴和行號)
  • 或以某種方式使這三個值中的一個值成為可能(例如,使csv字符串成為其中之一)。

在執行查詢之前,將值連接成一個字符串。

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM