如何在查询中使用PHP数组?

时间:2017-12-29 18:26:48

标签: php arrays pdo

大家好我有这个问题:

$URLA=implode("','",$Array);
$Data=$connection->prepare("SELECT Category,ID FROM SITES WHERE URL IN('".$Array."') AND Email=:Email ORDER BY Category DESC");
$Data->bindValue(':URL', $URL);
$Data->bindValue(':Email', $Email);
$Data->execute();

此代码提供此错误:  未捕获的PDOException:SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配。 我怎么解决这个问题? 请注意,Array是一个来自while循环的变量。并且包含更多的一个变量。 我尝试像这样绑定这个数组:

$Data->bindValue(':Array', $Array);

但这并没有奏效:'(

1 个答案:

答案 0 :(得分:0)

在您mentioned时,您的数组看起来像array(1,2,'ABC');

试试这个

$URLA= implode("', '", $array); # wrapping with single quote 

$Data=$connection->prepare("SELECT Category,ID FROM SITES WHERE URL IN(".$URLA.") AND Email=:Email ORDER BY Category DESC");
// $Data->bindValue(':URL', $URL); Seems no longer needed.
$Data->bindValue(':Email', $Email);

或者

$URLA= implode("', '", $array); # wrapping with single quote 

$Data=$connection->prepare("SELECT Category,ID FROM SITES WHERE URL IN(:url) AND Email=:Email ORDER BY Category DESC");
$Data->bindValue(':URL', $URLA);
$Data->bindValue(':Email', $Email);