php - 如何修复此错误: “array to string conversion ” ?

标签 php arrays string error-handling

我正在用PHP编写Web应用程序,当我运行脚本时,出现此错误:
数组到字符串的转换
这是引发错误的脚本。

public function insert($table, array $columns, array $values) {
            $sql = "INSERT INTO " . $table .
                    " (" . implode(',' , $columns) . " ) 
                    VALUES (" . implode(',',
                    $values) . ")";
            $this->request($sql);
    }
这是请求函数:
public function request($sql, $param = null) {
        if ($param == null) {
            $query = Database::getInstance()->getDb()->query($sql);
        }

        else {
           $query = Database::getInstance()->getDb()->prepare($sql);
           $query->execute(array($param));
        }

        return $query;
    }
N.B:我正在使用自己的MVC框架。
那么,任何建议或帮助都会被重视吗?
问候
YT

最佳答案

我建议您修改类方法以使用参数化查询:

class Test {
    public function insert($table, array $columns, array $values) {
        $sql = "INSERT INTO " . $table . " (" . implode(',' , $columns) . ") 
                VALUES (?" . str_repeat(",?", count($columns) - 1) . ");";

        echo $sql;
        $this->request($sql, $values);
    }
    
    public function request($sql, $param = null) {
        if ($param == null) {
            $query = Database::getInstance()->getDb()->query($sql);
        }

        else {
           $query = Database::getInstance()->getDb()->prepare($sql);
           $query->execute($param);
        }

        return $query;
    }   
};

$test = new Test();

$test->insert('tbl', ['id', 'name'], [1, 'first row']);
Online PHP test

关于php - 如何修复此错误: “array to string conversion ” ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65342688/

相关文章:

php - 将 PDF(具有透明度 * 和 * CMYK)转换为 jpg

javascript - 在javascript中解析

java - 将多行读入Java中的扫描仪对象

php - $request 中的已上传文件

php - 如何查找和识别字符串的特定部分?

php - 如何修复 Magento 中与 load() 方法相关的内存泄漏?

java - 获取特定字符串后的下一个字符/字符串

arrays - 如何在 Bash 中复制数组?

c - 两个数组中两个元素的最小总和,使得索引不相同

php - 从两个不同的表中获取 MySQL 值到一个数组中?