在php中合并两个formvars

时间:2017-01-12 18:13:31

标签: php mysql

我想在列voornaam中将列familienaam en volledige_naam放在一起。 但我还想将字段voornaam en familienaam保留在我的数据库中。

我尝试使用if功能,但我一直在收到错误。

任何人都知道我需要怎么做?

mysql表创建者脚本。

function CreateTable()
{
    $qry = "Create Table $this->tablename (".
        "id_user INT NOT NULL AUTO_INCREMENT ,".
        "volledige_naam VARCHAR( 128 ) NOT NULL ,".
        "voornaam VARCHAR( 128 ) NOT NULL ,".
        "familienaam VARCHAR( 128 ) NOT NULL ,".
        "adres VARCHAR( 128 ) NOT NULL ,".
        "postcode VARCHAR( 128 ) NOT NULL ,".
        "gemeente VARCHAR( 128 ) NOT NULL ,".
        "dob VARCHAR( 128 ) NOT NULL ,".
        "tele VARCHAR( 128 ) NOT NULL ,".
        "email VARCHAR( 64 ) NOT NULL ,".
        "username VARCHAR( 16 ) NOT NULL ,".
        "password VARCHAR( 32 ) NOT NULL ,".
        "confirmcode VARCHAR(32) ,".
        "PRIMARY KEY ( id_user )".
        ")";

    if(!mysql_query($qry,$this->connection))
    {
        $this->HandleDBError("Error creating the table \nquery was\n $qry");
        return false;
    }
    return true;
}

输入脚本的集合

function CollectRegistrationSubmission(&$formvars)
    {
        $formvars['voornaam'] = $this->Sanitize($_POST['voornaam']);
        $formvars['familienaam'] = $this->Sanitize($_POST['familienaam']);

插入mysql脚本。

function InsertIntoDB(&$formvars)
{

    $confirmcode = $this->MakeConfirmationMd5($formvars['email']);

    $formvars['confirmcode'] = $confirmcode;

    $insert_query = 'insert into '.$this->tablename.'(
            volledige_naam,
            voornaam,
            familienaam,
            adres,
            postcode,
            gemeente,
            dob,
            tele,
            email,
            username,
            password,
            confirmcode
            )
            values
            (
            "' . $this->SanitizeForSQL($formvars['volledige_naam']) . '",
            "' . $this->SanitizeForSQL($formvars['voornaam']) . '",
            "' . $this->SanitizeForSQL($formvars['familienaam']) . '",
            "' . $this->SanitizeForSQL($formvars['adres']) . '",
            "' . $this->SanitizeForSQL($formvars['postcode']) . '",
            "' . $this->SanitizeForSQL($formvars['gemeente']) . '",
            "' . $this->SanitizeForSQL($formvars['dob']) . '",
            "' . $this->SanitizeForSQL($formvars['tele']) . '",
            "' . $this->SanitizeForSQL($formvars['email']) . '",
            "' . $this->SanitizeForSQL($formvars['username']) . '",
            "' . md5($formvars['password']) . '",
            "' . $confirmcode . '"
            )';
    if(!mysql_query( $insert_query ,$this->connection))
    {
        $this->HandleDBError("Error inserting data to the table\nquery:$insert_query");
        return false;
    }
    return true;

1 个答案:

答案 0 :(得分:0)

您可以将记录保存在两列中,并在PHP或中轻松加入 在您的查询中。但是如果你想将它们存储在另一列中 无论如何,您可以在插入查询中加入。只需换一行, 而不是传递可能的PROC RANK 在您的表单中不存在,传递已加入的变量:

$formvars['volledige_naam'])

如果您选择仅将它们分开存储,请在$formvars['voornaam'] . ' ' . $formvars['familienaam'] 查询中 可以使用类似下面的内容来检索单个名称 柱:

SELECT

或者你可以单独检索它们并用PHP连接它们 类似的方法。此外,如评论中所述,您应该使用 PHP DataObjects,简称PDO。旧SELECT CONCAT_WS(' ', voornaam, familienaam) AS volledige_naam FROM gebruikers 函数是 很久以前就弃用了。