PHP / MySql插入语句不起作用

时间:2012-02-01 15:32:44

标签: php mysql

我以前从未这样做过,这是我第一次遇到这种情况

这是我创建的代码:

$query = mysql_query("INSERT INTO customerinfo (CustomerID, FirstName, LastName, PhoneNumber, PhoneNumber, PhoneNumber, Email, Symptoms) VALUES ('', '{$first}', '{$last}', {$codearea}, {$threedigit}, {$fourdigit}, '{$email}')", $connection);

如您所见,我的表有6列,其中包括:

  1. CustomerInfo
  2. 名字
  3. ******中国
  4. 电子邮件
  5. 症状
  6. 现在,当客户端填写表单时,应将其插入数据库。 但是,如果你查看我的insert语句,我列出了3次PhoneNumber列,因为表单在HTML页面上有3个字段(代码区,前缀和行号),我希望所有三个字段都插入到PhoneNumber列中。我怎么能这样做?

    谢谢!

8 个答案:

答案 0 :(得分:1)

您只需要在PHP中连接.并将其作为单个字段插入。你可以在MySQL中做类似的事情,但它有点混乱。

答案 1 :(得分:1)

如果您在表单中提示单独的areacode / prefix / line数据,您应该将它们分开保存在数据库中 - 三个单独的字段而不是单个“电话号码”字段。

但是,如果这不可能,那么在PHP中连接值:

INSERT INTO ... (..., PhoneNumber, ...) VALUES (..., '{$codearea}-{$threedigit}-{$fourdigit}', ...)

答案 2 :(得分:1)

在插入之前,您将需要使用PHP将3个HTML表单字段合并在一起:

$vPhoneNumber = $part1 . $part2 . $part3

然后,您可以在SQL中插入$vPhonenumber

答案 3 :(得分:1)

使用变量存储所有相关的电话值,

$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个列,那就更好了。

答案 4 :(得分:1)

$query = mysql_query(
    "INSERT INTO customerinfo (
        CustomerInfo, 
        FirstName, 
        LastName, 
        PhoneNumber, 
        Email, 
        Symptoms
    ) VALUES (
        '', 
        '".$first."', 
        '".$last."', 
        '".$codearea.$threedigit.$fourdigit."', 
        '".$email."',
        '".$symptoms."'
    )", $connection);

答案 5 :(得分:0)

无法在一个字段中存储三个值。

你必须

  • 使用三列代表PhoneNumber(代码区,前缀和行号)
  • 或以某种方式从三个中取出一个值(例如,通过制作一个csv字符串)。

答案 6 :(得分:0)

在执行查询之前将值连接成单个字符串。

$phone = $codearea . $threedigit . $fourdigit;
$query = mysql_query("INSERT INTO customerinfo (CustomerID, FirstName, LastName, PhoneNumber, Email, Symptoms) VALUES ('', '{$first}', '{$last}', '{$phone}', '{$email}')", $connection);

答案 7 :(得分:-1)

不推荐使用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'));