【问题标题】:how to insert array values into mysql with the same id如何将数组值插入具有相同ID的mysql
【发布时间】:2014-07-22 04:22:58
【问题描述】:

我想将数组值插入到具有相同联系人 ID 的数据库中,

我想要这样

contactid       languageid
124              1
124              2

这是我的 languageid 数组值:Array ( [0] => 1 [1] => 2 [2] => ) 和我的 contactid = 124

谁能告诉我这是怎么做的,

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

    mysql_query($queryinsert);
    print $queryinsert;

【问题讨论】:

  • 遍历你的 languageid 数组并插入它们
  • 建议:从已弃用的 mysql_* API 切换到 mysqliPDOmysql_* 在未来的 php 版本中将不存在。

标签: php mysql arrays


【解决方案1】:

您只是有一个列不匹配(您的列已切换)。考虑这个例子:

// 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);
}

【讨论】:

    【解决方案2】:
        $queryinsert="INSERT INTO contactlanguage (contactid,languageid) VALUES ('$languageId','$contactId')";
    
            mysql_query($queryinsert);
            print $queryinsert;
    

    您的迭代值错误。您传递给查询的值格式错误,

    检查你的第一个字段是contactid,第二个是languageid,你的第一个值是languageid,第二个是contactid,

    所以在这种情况下,您的 languageid 进入 contactid 字段,contactid 进入 languageid 字段。因此,如下所示,

        $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);
        }
    

    【讨论】:

      【解决方案3】:

      试试这个:

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

      【讨论】:

        【解决方案4】:

        首先请记住,mysql_* 函数已被贬值,而您是obsolete to sql injection,因为您直接将用户输入传递给查询。是时候切换到mysqli_*pdo

        遍历您的 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);
        }
        

        您可以使用for loopforeach 循环数组

        【讨论】:

          【解决方案5】:

          你可以这样做

          <?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);
              }
          ?>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-01-02
            • 1970-01-01
            • 1970-01-01
            • 2020-09-20
            • 1970-01-01
            • 1970-01-01
            • 2022-01-25
            • 2019-12-10
            相关资源
            最近更新 更多