首页  >  问答  >  正文

使用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 天前444

全部回复(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
  • 取消回复