通过php将多个表单数据插入到多个mysql表中

时间:2014-07-01 18:24:52

标签: php mysql multiple-tables

仍然是非常新的PHP但快速学习。我有两种形式收集数据,然后传递给PHP函数。两种形式的所有数据都是将它转换为php文件,因为我正在回应这些值。

我的问题是第一个表格正确更新,没有任何问题,但第二个表格未更新。

以下是有问题的代码

private function registerNewUser($user_name, $user_email, $user_password, $user_password_repeat, $captcha, $user_type, $first_name)
....

// write new users data into database
    $query_new_user_insert = $this->db_connection->prepare('INSERT INTO users (user_name, user_password_hash, user_email, user_activation_hash, user_registration_ip, user_registration_datetime, user_type) VALUES(:user_name, :user_password_hash, :user_email, :user_activation_hash, :user_registration_ip, now(), :user_type)');                
    $query_new_user_insert->bindValue(':user_name', $user_name, PDO::PARAM_STR);
    $query_new_user_insert->bindValue(':user_password_hash', $user_password_hash, PDO::PARAM_STR);
    $query_new_user_insert->bindValue(':user_email', $user_email, PDO::PARAM_STR);
    $query_new_user_insert->bindValue(':user_activation_hash', $user_activation_hash, PDO::PARAM_STR);
    $query_new_user_insert->bindValue(':user_registration_ip', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
    $query_new_user_insert->bindValue(':user_type', $user_type, PDO::PARAM_STR);                
    $query_new_user_insert->execute();              

// id of new user
    $id = $this->db_connection->lastInsertId();

    echo $first_name;
    echo $user_email;
    echo $id;
//  attempt at writing to additional table
    $this->db_connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
    $query_new_user_insert2 = $this->db_connection->prepare('INSERT INTO C_Customer (First_Name, Email_Address, Created_Date, id) VALUES(:first_name, :user_email, now() :id');
    $query_new_user_insert2->bindValue(':first_name', $first_name, PDO::PARAM_STR);
    $query_new_user_insert2->bindValue(':user_email', $user_email, PDO::PARAM_STR); 
    $query_new_user_insert2->bindValue(':id', $id, PDO::PARAM_INT);
    $query_new_user_insert2->execute(); 

$query_new_user_insert在表格更新时起作用

$query_new_user_insert2不起作用,因为表C_Customers不包含任何数据。

1 个答案:

答案 0 :(得分:0)

在第二次查询时,您忘记在now():id之间添加逗号。另外,你忘了把括号括起来。

prepare('INSERT INTO C_Customer (First_Name, Email_Address, Created_Date, id) VALUES(:first_name, :user_email, now() :id')

应该是

prepare('INSERT INTO C_Customer (First_Name, Email_Address, Created_Date, id) VALUES(:first_name, :user_email, now(), :id)');

另一个错字:)希望它有所帮助。