I have the following code:
foreach ($_POST['arrachar'] as $selected) {
$stringArrachar = "";
for ($x = 0; $x < count($arrayTypes); $x++) {
if (isset($selected[$arrayTypes[$x]])) {
$stringArrachar .= $selected[$arrayTypes[$x]] . ",";
continue;
}
$stringArrachar .= ",";
}
$stringArrachar = substr($stringArrachar, 0, -1);
$string = $stringArrachar;
$vazio = str_replace(",", "", $string);
$date = explode(",", $string);
$data = $date[0];
if ($vazio != "") {
$stringSelect .= "SUBSTRING_INDEX(arrachar, ',', 1) = ? OR ";
$arrayValues[] = array(
"data" => $data,
"arrachar" => $string
);
}
}
$stringSelect = substr($stringSelect, 0, -3);
$stmt = $conn->prepare($stringSelect);
$stmt->execute();
When running it generates the following error:
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or
access violation: 1064 You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ‘? OR SUBSTRING_INDEX(arrachar, ‘,’, 1) = ? OR
SUBSTRING_INDEX(arrachar, ‘,’, 1) ‘
If you change this line in the code like this, it already works:
$stringSelect .= "SUBSTRING_INDEX(arrachar, ',', 1) = '$data' OR ";
Can you help?
Recognized by PHP Collective
2