PDOstatement :: execute()期望参数1为数组,字符串为

时间:2016-12-20 17:23:43

标签: php

请帮我纠正此代码。 行错误

$stmt->execute($params = [], $query);

当我用Dreamweaver打开文件时,每个" $ params = []"是错误。

-Databasse.php -

<?php 

include_once('connection.php'); //my connection is here

class Database extends connection{


public function __construct(){

    parent::__construct();
}

public function getRow($params = [], $query){
    try {
        $stmt = $this->datab->prepare($query);
        $stmt->execute($params);
        return $stmt->fetch();  
    } catch (PDOException $e) {
        throw new Exception($e->getMessage());  
    }

}

public function getRows($query, $params = []){
    try {
        $stmt = $this->datab->prepare($query);
        $stmt->execute($params);
        return $stmt->fetchAll();   
    } catch (PDOException $e) {
        throw new Exception($e->getMessage());  
    }
}

这是源代码database.php的一半

1 个答案:

答案 0 :(得分:2)

需要查看更多代码 - 您的查询字符串是什么,您尝试将哪些值添加到其中的数组?

通常,您的查询会有问号?,或者可能会将冒号:mykeyword作为值的占位符,然后您的数组会保留已准备好的值#34;并执行。

$query="select name from users where name=? and passwordHash=?";
$res=$connection->prepare($query);
$res->execute(array(
    "myuser",
    "dd02c7c2232759874e1c205587017bed"),
    );

// OR

$query="select name from users where name=:name and passwordHash=:passwordHash";
$res=$connection->prepare($query);
$res->execute(array(
    ":name" => "myuser",
    ":passwordHash" => "dd02c7c2232759874e1c205587017bed"),
    );

这是查询准备,转义等,以及&#34; myuser&#34; value替换第一个问号,哈希字符串替换第二个问号。