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_数组与我的问题相同。