2017-12-29 10 views
-1

Hallo Jungs Ich habe diese Anfrage:Wie kann ich PHP-Arrays in Abfragen verwenden?

$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(); 

Dieser Code gibt diesen Fehler: Uncaught PDOException: SQLSTATE [HY093]: Ungültige Parameternummer: Anzahl der gebundenen Variablen nicht mit Anzahl von Token. Wie kann ich dieses Problem lösen? Beachten Sie, dass Array eine Variable ist, die aus einer while-Schleife stammt. Und mehr als eine Variable enthält. ich tryied dieses Array wie folgt binden:

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

Aber das funktionierte nicht: '(

+1

'URL IN ('". $ Array. "')' Das sollte '$ URLA' sein –

+0

Sie verwenden auch nicht': URL' in der Abfrage. Ich hoffe, Sie wollten das nicht für 'WHERE URL' verwenden. –

+0

@ Funk Forty Niner nono, weil der implode das Array wie folgt tun wird: 1 ',' 2, 'so mit' 'es wird' 1 ',' 2 'sein – user9154057

Antwort

0

Wie Sie mentioned, Ihr Array wie diese array(1,2,'ABC'); aussieht,

versuchen, diese

$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); 

Oder

$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); 
+0

Kann ich das Array binden, um SQL Injection zu vermeiden? – user9154057

+1

können Sie diese '$ Data-> bindValue (': URL', $ URL);' mit 'IN (: url)' –

+0

@ user9154057 überprüfen Sie die [bearbeiten Sie jetzt] (https://stackoverflow.com/posts/ 48026972/revisions) und überprüfen Sie diese [antworten Sie auch] (https://stackoverflow.com/questions/920353/cani-i-bind-an-array-to-an-in-condition) –

Verwandte Themen