【问题标题】:Problem inserting array data into database将数组数据插入数据库的问题
【发布时间】:2011-09-06 11:20:21
【问题描述】:

有人请看下面的代码,它是处理通过表单提交的数据并将这些数据插入到 MySQL 数据库中。

<? $con = mysql_connect("localhost","username","password");

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("database_name", $con);

$name=mysql_real_escape_string(serialize($_POST['fullname15']));
$bdate=mysql_real_escape_string(serialize($_POST['birthdate19']));

$sql="INSERT INTO bookings (full_name, dob, email) VALUES ('$_POST[name]','$_POST[bdate]','$_POST[email]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "Form Sent to Database";

mysql_close($con)
?>`

我使用了一个名为 JotForm 的表单构建器来构建我的表单,并在提交表单时将数据发送到我上面的 process.php 脚本。问题是我无法将其中的一些数据输入我的数据库。目前唯一成功的字段是电子邮件字段。

数据正在成功提交到我的脚本,因为“var_dump”显示:

[fullname15] => Array ( [0] => Joe [1] => Bloggs )
[birthdate19] => Array ( [0] => 14 [1] => November [2] => 1921 )
[email16] => joebloggss@sample.com 

我是编程新手,我已经尝试了几个小时才能将全名和出生日期插入到我几乎放弃的数据库字段中。任何帮助将不胜感激。

【问题讨论】:

    标签: php mysql arrays forms serialization


    【解决方案1】:

    您没有向 $sql 语句发送任何内容。例如,$_POST['name'] 为空。以后要调试,打印出$sql进行检查。

    $name=mysql_real_escape_string(serialize($_POST['fullname15']));
    $bdate=mysql_real_escape_string(serialize($_POST['birthdate19']));
    $email=mysql_real_escape_string(serialize($_POST['email16']));
    
    $sql="INSERT INTO bookings (full_name, dob, email) VALUES ('$name','$bdate','$email')";
    

    【讨论】:

    • 嗨,感谢您的快速回复@tofutim,我刚刚修改了它,但是当我查看数据库时这些字段仍然没有填充,这让我认为数据库中的字段类型不是对或什么的。我将更改其中一些字段类型,看看是否能解决问题。但是感谢您指出我做错了什么。 :-)
    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2011-08-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多