首頁  >  問答  >  主體

使用PHP將陣列傳遞給SQL插入查詢

<p>我有一個 SQL 查詢來插入沒有列名稱的資料:</p> <pre class="brush:php;toolbar:false;">$sql = "INSERT INTO test_table VALUES (null,1,2,3) "; if (mysqli_query($conn, $sql)) {echo 'success!';}else {echo 'failed!';}</pre> <p>我想要將1,2,3當作陣列插入,類似這樣:</p> <pre class="brush:php;toolbar:false;">$data = [1,2,3]; $sql = "INSERT INTO test_table VALUES (null,$data) "; if (mysqli_query($conn, $sql)) {echo 'success!';}else {echo 'failed!';}</pre> <p>我也嘗試了php的implode函數,但它沒有起作用。任何幫助將不勝感激。謝謝! </p>
P粉207483087P粉207483087418 天前446

全部回覆(1)我來回復

  • P粉343141633

    P粉3431416332023-08-29 17:56:37

    您沒有提供它要插入的表結構,但是如果您只想解決將$data數組拆分為組成部分的問題,可以有幾種方法:

    a) 使用implode(),儘管您已經提到嘗試過它,但應該可以正常工作:

    $data = [1,2,3];    
    $sql = "INSERT INTO test_table VALUES (null,".implode(',',$data).")";

    b) 引用每個陣列索引:

    $data = [1,2,3];    
    $sql = "INSERT INTO test_table VALUES (null,{$data[0]},{$data[1]},{$data[2]})";

    但這只適用於陣列中有固定數量的值。

    c) 遍歷陣列:

    $data = [1,2,3];    
    $sql = "INSERT INTO test_table VALUES (null"
    foreach($data as $value){ $sql .= ",$value"; }
    $sql .= ")";

    希望這可以幫助到您,如果沒有,請提供有關要插入的資料和資料庫表結構的更多詳細信息,以便我們更好地理解問題。

    回覆
    0
  • 取消回覆