Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有IN和多个where条件的原始查询?_Php_Symfony4 - Fatal编程技术网

Php 具有IN和多个where条件的原始查询?

Php 具有IN和多个where条件的原始查询?,php,symfony4,Php,Symfony4,我需要在条件中使用一个和多个WHERE条件编写一个查询。我已经尝试了下面的SQL语句,但这一条并没有得到结果。也许我做错了什么 SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters $columns = "DISTINCT model, manufacturer, logo, year, update_status"; $modelList = array('Version', 'Fa

我需要在条件中使用一个
和多个
WHERE
条件编写一个查询。我已经尝试了下面的SQL语句,但这一条并没有得到结果。也许我做错了什么

SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters

$columns = "DISTINCT model, manufacturer, logo, year, update_status";

$modelList = array('Version', 'Facelift', 'Optionsänderung');


$orderBy = "manufacturer, model";

// Prepare the sql statement.
$sql = "select $columns from tbl_manufacture where model IN (:modelList)  year > ? AND update_status = ?";
$sql.="order by $orderBy";

$em = $this->getEntityManager();
$query = $em->getConnection()
            ->prepare($sql);
$query->bindValue("modelList", $modelList, Connection::PARAM_STR_ARRAY);

$params = array(
    "year" => $year,
    "update_status" => $status
);

// Execute the statement
$query->execute($params);
您在以下情况下丢失了“和”:

$sql = "select $columns from tbl_manufacture where model IN (:modelList) AND year > ? AND update_status = ?";
$sql.="order by $orderBy";
您在以下情况下丢失了“和”:

$sql = "select $columns from tbl_manufacture where model IN (:modelList) AND year > ? AND update_status = ?";
$sql.="order by $orderBy";

您需要将数组转换为逗号分隔的字符串,以便在如下查询中使用它:

$modelList = array('Version', 'Facelift', 'Model');
$modelList = "'" . implode ( "', '", $modelList ) . "'";
结果: “版本”、“翻新”、“型号”


而且(:modelist)

中的
之后缺少
,您需要将数组转换为逗号分隔的字符串,以便在如下查询中使用它:

$modelList = array('Version', 'Facelift', 'Model');
$modelList = "'" . implode ( "', '", $modelList ) . "'";
结果: “版本”、“翻新”、“型号”


另外,您在(:modelList)

中的
之后缺少
,我收到错误SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数请参阅上述错误@PrabhjotSinghKainth SQLSTATE[HY093]:无效参数编号:参数未定义我收到错误SQLSTATE[HY093]:无效参数编号:混合命名参数和位置参数请参阅上文@PrabhjotSinghKainth SQLSTATE[HY093]中的错误:无效参数编号:未定义参数Param_INT_ARRAY将数组转换为字符串,但在我的情况下,数组中也有“OptionsÃnderung”。所以当我应用PARAM_INT_数组时,它给出了一个错误。它应该是PARAM_STR_数组而不是PARAM_INT_数组。这只是在评论你时的一个输入错误。它的PARAM_STR_数组与我的问题相同。PARAM_INT_数组将数组转换为字符串,但在我的例子中,我的数组中也有“Options÷nderung”。所以当我应用PARAM_INT_数组时,它给出了一个错误。它应该是PARAM_STR_数组而不是PARAM_INT_数组。这只是在评论你时的一个输入错误。它的PARAM_STR_数组与我的问题相同。