Hi Leute,
ich hab ein Problem mit einem Prepared Statement, welches einfach nicht ordentlich funktionieren will:
Hab auch schon gegoogelt und gesucht, was falsch sein könnte, aber ich komm einfach nicht drauf, wenn ich statt dem Prepared Statement ein Query einsetze, erhalte ich hingegen keinen Fehler und erhalte die Suchergebnisse:
Ich hoffe jemand kann mich aufklären. Vielen Dank im voraus und schöne Pfingsten
.
ich hab ein Problem mit einem Prepared Statement, welches einfach nicht ordentlich funktionieren will:
PHP:
public function searchUser($what, $keyword) {
$sql = "SELECT
id,
title,
firstname,
lastname,
email
FROM users
WHERE ? LIKE CONCAT('%', ?, '%')";
$result = null;
if($stmt = $this->db->prepare($sql)) {
$stmt->bind_param('ss', $what, $keyword);
$stmt->execute();
$stmt->bind_result(
$userID,
$title,
$firstname,
$lastname,
$email
);
while($stmt->fetch()) {
$result[] = array(
'user_id' => $userID,
'title' => $title,
'firstname' => $firstname,
'lastname' => $lastname,
'email' => $email
);
}
$stmt->close();
return $result;
}
return false;
}
Hab auch schon gegoogelt und gesucht, was falsch sein könnte, aber ich komm einfach nicht drauf, wenn ich statt dem Prepared Statement ein Query einsetze, erhalte ich hingegen keinen Fehler und erhalte die Suchergebnisse:
PHP:
public function searchUser($what, $keyword) {
$what = mysqli_real_escape_string($this->db, $what);
$keyword = mysqli_real_escape_string($this->db, $keyword);
$sql = "SELECT
id,
title,
firstname,
lastname,
email
FROM users
WHERE ".$what."
LIKE '%".$keyword."%'";
$data = null;
if($result = $this->db->query($sql)) {
while($row = $result->fetch_assoc()) {
$data[] = array(
'user_id' => $row['id'],
'title' => $row['title'],
'firstname' => $row['firstname'],
'lastname' => $row['lastname'],
'email' => $row['email']
);
}
return $data;
}
return false;
}
Ich hoffe jemand kann mich aufklären. Vielen Dank im voraus und schöne Pfingsten
