简体   繁体   English

如何将数组值插入具有相同ID的mysql中

[英]how to insert array values into mysql with the same id

i want to insert the array values into database with same contact id, 我想将数组值插入具有相同联系人ID的数据库中,

i want like this 我想要这样

contactid       languageid
124              1
124              2

this is my array value of languageid:Array ( [0] => 1 [1] => 2 [2] => ) and my contactid = 124 这是我的languageid:Array的数组值([0] => 1 [1] => 2 [2] =>),我的contactid = 124

can any one tell me how do this, 谁能告诉我该怎么做,

$queryinsert="INSERT INTO contactlanguage (contactid,languageid) VALUES ('$languageId','$contactId')";

    mysql_query($queryinsert);
    print $queryinsert;

You just have a column mismatch (your columns have switched). 您只是列不匹配(您的列已切换)。 Consider this example: 考虑以下示例:

// provided, you have already connected to mysql
$languageid = array(1, 2);
$contactid = 124;
foreach($languageid as $id) {
    $statement = "INSERT INTO contactlanguage (contactid, languageid) VALUES ('$contactid', '$id')"
    mysql_query($statement);
}
    $queryinsert="INSERT INTO contactlanguage (contactid,languageid) VALUES ('$languageId','$contactId')";

        mysql_query($queryinsert);
        print $queryinsert;

your iteration values are wrong. 您的迭代值是错误的。 You passed on values to the query is in wrong formate, 您将值传递给查询的格式错误,

Check your first field is contactid and second one is languageid, and your first value is languageid and second is contactid, 检查您的第一个字段是contactid,第二个字段是languageid,并且您的第一个值是languageid,第二个值是contactid,

So in this case, your languageid goes in contactid field and contactid goes into languageid field. 因此,在这种情况下,您的languageid进入contactid字段,而contactid进入languageid字段。 So make it proper as follows, 因此,请按照以下说明进行操作,

    $languageid = array(xx, xx);  // Which is your array values
    $contactid = xxx; // which is your conatec value.
    foreach($languageid as $key=>$val) {
        $statement = "INSERT INTO contactlanguage (contactid, languageid) VALUES ('".$contactid."', '".$val."')"
        mysql_query($statement);
    }

Try this: 尝试这个:

$languageid = array(1, 2);
$contactid = 124;
foreach($languageid as $key=>$id) {
    $statement = "INSERT INTO contactlanguage (contactid, languageid) VALUES ('$contactid', '$id')"
    mysql_query($statement);
}

First Remember that mysql_* functions are depreciated and you are obsolete to sql injection because you are directly passing user inputs to the query.Its time to switch into mysqli_* or pdo . 首先,请记住mysql_ *函数已过时,并且您已经过时了sql注入,因为您将用户输入直接传递给了查询。现在该切换到mysqli_ *pdo了

Iterate over your languageid array and insert each one like this and you need to change to column names order in your query. 遍历languageid数组,并像这样插入每个数组,您需要在查询中更改为列名顺序。

$arrlanguageid = array ( 0 => 1 , 1 => 2);
$contactid = 124;
foreach($arrlanguageid as $key=>$val){
$queryinsert="INSERT INTO contactlanguage (contactid,languageid) VALUES ('$contactid','$val')";
    mysql_query($queryinsert);
}

You can use for loop or foreach for looping over an array 您可以使用for循环foreach遍历数组

You can do that like this 你可以这样

<?php
    $con=mysqli_connect("your_db_ip","your_username","your_password","your_db_name");
    $array = array(1,2,3);
    $contactId = 124;
    foreach($array as $value){
        $languageId = $value;        
        $queryinsert="INSERT INTO contactlanguage (contactid,languageid) VALUES ('$contactId','$languageId')";
        mysqli_query($con,$queryinsert);
    }
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM