Reputation: 1661
$emptyNumbers has 2 items and $qMarks is " ?,? ". What is the problem?
if(($key = array_search($row['nummer'], $emptyNumbers)) !== false) {
unset($emptyNumbers[$key]);
}
echo sizeof($emptyNumbers)."==>".$qMarks; // 2 ==> ?,?
$qMarks = str_repeat('?,', count($emptyNumbers)-1) . '?';
$getPlayerData=$db->prepare( "SELECT number,surname,firstname,position,job FROM player WHERE nummer IN ($qMarks)");
$getPlayerData->execute($emptyNumbers);
--> Error: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Upvotes: 0
Views: 32
Reputation: 1661
The problem was that I previously unset values from $emptyNumbers and I did not reorder the array so that there were empty values.
if(($key = array_search($row['nummer'], $emptyNumbers)) !== false) {
unset($emptyNumbers[$key]);
//delete the gaps in the array!
$emptyNumbers = array_values($emptyNumbers);
}
$qMarks = str_repeat('?,', count($emptyNumbers)-1) . '?';
$getPlayerData=$db->prepare( "SELECT number,surname,firstname,position,job FROM player WHERE nummer IN ($qMarks)");
$getPlayerData->execute($emptyNumbers);
Upvotes: 1