Skip to main content
added 381 characters in body
Source Link
Eternal1
  • 5.6k
  • 3
  • 34
  • 48

You cannot mix ? bindings and :param bindings in one prepared statement.

So, you need something like this:

$location = array("England", "America", "Australia");

$qMarks = str_repeat('?,', count($location) - 1) . '?'; 

$location[] = (int)$limit;
$location[] = (int)$offset;
$sql = $conn->prepare("SELECT * FROM adverts WHERE location IN ($qMarks) AND status = 2 LIMIT ? OFFSET ?");
$sql->execute($location);

You cannot mix ? bindings and :param bindings in one prepared statement.

You cannot mix ? bindings and :param bindings in one prepared statement.

So, you need something like this:

$location = array("England", "America", "Australia");

$qMarks = str_repeat('?,', count($location) - 1) . '?'; 

$location[] = (int)$limit;
$location[] = (int)$offset;
$sql = $conn->prepare("SELECT * FROM adverts WHERE location IN ($qMarks) AND status = 2 LIMIT ? OFFSET ?");
$sql->execute($location);
Source Link
Eternal1
  • 5.6k
  • 3
  • 34
  • 48

You cannot mix ? bindings and :param bindings in one prepared statement.