Ich habe eine Funktion, die ein Array von Zeilen zurückgeben soll, die Datensätze aus einer Datenbank enthalten, die basierend auf einer LIKE-Abfrage ausgewählt werden. Ich möchte, dass diese Abfrage aus Sicherheitsgründen eine vorbereitete Aussage ist. Anscheinend kann ich gebundene Parameter und die Abfragefunktion nicht verwenden, wie ich es tue. Ich bin mir nicht sicher, wie ich mich als vorbereitete Aussage halten und die Zeilen zurückgeben soll, die ich zurückgeben möchte.Abrufen von Daten aus einer vorbereiteten Anweisung
function getRowsByArticleSearch($searchString, $table, $max) {
$con = mysqli_connect("localhost", "x", "x", "x");
//global $con;
$recordsQuery = "SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, date_format(str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s'), '%d %m %Y') AS shortDate FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '%?%' ORDER BY str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s')" . $max;
if ($getRecords = $con->prepare($recordsQuery)) {
$getRecords->bind_param("s", $searchString);
//$getRecords->execute();
echo "test if";
//$getRecords->bind_result($ARTICLE_NO, $USERNAME, $ACCESSSTARTS, $ARTICLE_NAME, $shortDate);
while ($getRecords->fetch()) {
$result = $con->query($recordsQuery);
$rows = array();
echo "test while";
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
}
return $rows;
} else {
print_r($con->error);
}
}
Die while-Schleife wird nie eingegeben.
warum der Kommentar gesetzt ist execute ?? – vladr
Dup von [SQL wie Anweisung Probleme] (http://stackoverflow.com/q/618527/). – outis