簡體   English   中英

輸入數組的每個元素作為每個mysql列的記錄

[英]Enter each element of an array as a record of each mysql column

我想要的是在我的數據庫的一個字段中輸入數組的每個元素這是我的結構示例表記錄有四個字段 value1, value2 value3, value4 我想輸入以下代碼生成的以下記錄

arraynew = array("5878-1","8978-12","2523-1");
$dato1 = "00320555555";
$dato2 = "22/02/2018";
$dato3 = "Maria Mercedes del Barrio";
$dato4 = $arraynew;

$data = array($dato1,$dato2,$dato3,$dato4);

$nuevo = array();
for($i= 0; $i < count($dato4); $i++ ){
    array_push($nuevo, array(
        $data[0],
        $data[1],
        $data[2],
        $data[3][$i]
    ));
}
echo print_r($nuevo);
echo var_dump($nuevo);

這是數組的結構

Array ( [0] => Array ( [0] => 00320555555 [1] => 22/02/2018 [2] => Maria Mercedes del Barrio [3] => 5878-1 ) [1] => Array ( [0] => 00320555555 [1] => 22/02/2018 [2] => Maria Mercedes del Barrio [3] => 8978-12 ) [2] => Array ( [0] => 00320555555 [1] => 22/02/2018 [2] => Maria Mercedes del Barrio [3] => 2523-1 ) ) 1
array (size=3)
  0 => 
    array (size=4)
      0 => string '00320555555' (length=11)
      1 => string '22/02/2018' (length=10)
      2 => string 'Maria Mercedes del Barrio' (length=25)
      3 => string '5878-1' (length=6)
  1 => 
    array (size=4)
      0 => string '00320555555' (length=11)
      1 => string '22/02/2018' (length=10)
      2 => string 'Maria Mercedes del Barrio' (length=25)
      3 => string '8978-12' (length=7)
  2 => 
    array (size=4)
      0 => string '00320555555' (length=11)
      1 => string '22/02/2018' (length=10)
      2 => string 'Maria Mercedes del Barrio' (length=25)
      3 => string '2523-1' (length=6)

我需要的是輸入每個數組並在一行中輸入它的相應字段

我將假設您正在處理用戶提供的數據,因此需要一個 mysqli 准備好的語句。 我的方法將對數據庫進行 3 次調用,並記錄查詢導致的受影響行數。

(我已測試此代碼在我的服務器上成功。)

代碼:

$mysqli = new mysqli(...$fourIndexedCredentials);
$stmt = $mysqli->prepare("INSERT INTO tablename (value1, value2, value3, value4) VALUES (?,?,?,?)");
$stmt->bind_param("ssss", $dato1, $dato2, $dato3, $dato4);

$dato1 = "00320555555";
$dato2 = "22/02/2018";
$dato3 = "Maria Mercedes del Barrio";
$arraynew = ["5878-1", "8978-12", "2523-1"];
$tally = 0;
foreach ($arraynew as $dato4) {  // the declaration of $dato4 is all that is required for binding
    if ($stmt->execute()) {
        ++$tally;
    }
}
echo $tally;  // output: 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM