Ich versuche ein PHP-Skript mit MySQLi zu schreiben, um eine Datenbank abzufragen.Wie kann ich eine Datenbank in PHP abfragen und Ergebnisse basierend auf übereinstimmenden Benutzereingaben zurückgeben?
Ich würde es gerne, wenn die Benutzereingabe gegen die Datenbank überprüft werden könnte und dann ein Ergebnis aus der Spalte 'Konjugation' zurückgeben, wenn die Zeichenfolge in der Spalte 'root' der Tabelle 'normal_verbs' in der Eingabe ist .
Also, wenn die Benutzereingabe etwas wie "Foobar" ist und die Root-Spalte "foo" hat, würde ich gerne "foo" in "foobar" sehen und diesen Wert von "conjugation" zurückgeben Reihe.
Ich kann nicht scheinen, um die Abfrage zu erhalten, wie ich es will. Der, den ich unten verwende, ist im Grunde nur ein Platzhalter. Ich verstehe nicht ganz, warum es nicht funktioniert.
Was ich versuche, ist dies:
function db_connect() {
static $connection;
if(!isset($connection)) {
$connection = mysqli_connect('localhost','user','password','Verb_Bank');
}
if($connection === false) {
return mysqli_connect_error();
}
return $connection;
}
function db_query($query) {
$connection = db_connect();
$result = mysqli_query($connection,$query);
return $result;
}
function db_quote($value) {
$connection = db_connect();
return "'" . mysqli_real_escape_string($connection,$value) . "'";
}
$m= db_query("SELECT `conjugation` from normal_verbs where `root` in (" . $y . ")");
if($m === false) {
// Handle failure - log the error, notify administrator, etc.
} else {
// Fetch all the rows in an array
$rows = array();
while ($row = mysqli_fetch_assoc($m)) {
$rows[] = $row;
}
}
print_r ($rows);
Es ist nicht mir irgendwelche Fehler geben, so denke ich, es in die Datenbank ist zu verbinden.
EDIT2: Ich lag falsch. Mir fehlte etwas Offensichtliches aufgrund von Missverständnissen bei MySQLi und ich habe den Code entsprechend bearbeitet. Also funktioniert der obige Code, indem er sich mit der Datenbank verbindet und ein Ergebnis zurückgibt, aber ich stehe immer noch auf einer brauchbaren SQL-Anweisung, um das zu tun, was ich tun soll.
Wenn diese typografische Anführungszeichen in es sind Sie Syntaxfehler bekommen, sind sie in den Protokollen. Fügen Sie die Fehlerberichterstattung an den Anfang Ihrer Datei (en) direkt nach dem Öffnen des ' Php' Tags' error_reporting (E_ALL) hinzu; ini_set ('display_errors', 1); ' –
[Ihr Skript ist für SQL Injection Attacks gefährdet.] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) Erfahren Sie mehr über [vorbereitet] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) . –
Sie führen die Abfrage, aber nicht die Daten abholen mit etwas wie 'fetch()' –