【问题标题】:arrays inside a function to insert data using mysqli? [closed]使用mysqli插入数据的函数内的数组? [关闭]
【发布时间】:2022-01-09 07:25:42
【问题描述】:

我需要使用变量和数组创建新列。 如何在函数中使用变量和数组使用 mysqli 插入数据?

每当我调用函数时,我都会添加一个数组作为参数 {$b} 来提供新数据

我遇到的错误描述如下:

致命错误:未捕获的 mysqli_sql_exception:C:\xampp\htdocs\demo11\Functions_Create_Read_Update_Delete_CRUD.php:24 堆栈跟踪:#0 C:\xampp\htdocs\demo11\Functions_Create_Read_Update_Delete_CRUD 中的“字段列表”中的未知列“hi”。 php(24): mysqli_query(Object(mysqli), 'INSERT INTO pro...') #1 C:\xampp\htdocs\demo11\Functions_Create_Read_Update_Delete_CRUD.php(35): createColumns('', 'products_postin...' , Array, Array) #2 {main} 在第 24 行的 C:\xampp\htdocs\demo11\Functions_Create_Read_Update_Delete_CRUD.php 中抛出

我写的代码是:

///////////-----Create-----///////////

//Create Columns




 function createColumns($database, $table, $columns = array(), 
 $values = array())
 {
include('Connect_To_Database.php');

/*----- Implode Your column names with comma ------*/
    $col_names = implode(',', $columns);

/*----- Implode Your column values with comma ------*/
    $col_values = implode(',', $values);

/*----- Create your query in here ------*/
    $sql = "INSERT INTO $table ($col_names) VALUES 
 (($col_values))";

    /*----- Then check your query ------*/
    if (mysqli_query($mysqli, $sql)){
      echo "New record created successfully";
    }else{
      echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);
    }

    mysqli_close($mysqli);

 }
 $a = array("post_type", "post_image_name", "post_image_size_x");
 $b = array("hi", "hello", "there");
 createColumns("", "products_posting", $a, $b);

【问题讨论】:

  • 您有一个包含列名的数组,但放入这些列的数据总是相同的?现在这很奇怪!你确定吗
  • 不,我需要再添加一个数组作为新数据提交的参数。谢谢你的建议stackoverflow.com/users/2310830/riggsfolly

标签: php arrays function variables mysqli


【解决方案1】:

首先,创建列添加记录不同,因此您需要更好地解决您的问题。

从代码中,我假设您希望将列名作为数组提供,并根据它们向您的表中插入一条记录。为此,您无需迭代列数组中的项目。不要这样做,而是尝试 implode 它并像这样添加您的 SQL 查询:

function createColumns($database, $table, $columns = array())
{
    include('Connect_To_Database.php');

    /*----- Implode Your column names with comma ------*/
        $col_names = implode(',', $columns);

    /*----- Create your query in here ------*/
        $sql = "INSERT INTO $table ($col_names) VALUES ('John', 'Doe', 'john@example.com')";

    /*----- Then check your query ------*/
        if (mysqli_query($mysqli, $sql)){
          echo "New record created successfully";
        }else{
          echo "Error: " . $sql . "<br>" . mysqli_error($conn);
        }

        mysqli_close($conn);
    
}
$a = array("post_type", "post_image_name", "post_image_size_x");
createColumns("", "products_posting", $a);

如需进一步检查,您可以查看:PHP Implode Function

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2015-11-30
    • 2016-08-26
    • 2017-12-06
    • 1970-01-01
    相关资源
    最近更新 更多