Sto provando a scrivere uno script PHP con MySQLi per interrogare un database.Come posso interrogare un database in PHP e restituire i risultati in base all'integrazione dell'utente?
Mi piacerebbe se l'input dell'utente potesse essere verificato rispetto al database e quindi restituire un risultato dalla colonna 'conjugation' se la stringa nella colonna 'root' della tabella 'normal_verbs' è nell'input .
Quindi se l'input dell'utente è qualcosa come "foobar", e la root-column ha "foo", mi piacerebbe vedere "foo" in "foobar" e restituire quel valore di "conjugation" in quel riga.
Non riesco a sembrare che la query funzioni come vorrei. Quello che sto usando qui sotto è fondamentalmente solo un segnaposto. Non capisco del tutto perché non funzioni.
Quello che sto cercando, è questa:
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);
Non mi sta dando eventuali errori, quindi penso che sia la connessione al database.
EDIT2: mi sono sbagliato. Mi mancava qualcosa di ovvio a causa di incomprensioni con MySQLi e ho modificato il codice di conseguenza. Quindi il codice sopra riportato funziona in quanto si collega al database e restituisce un risultato, ma sono ancora costretto su una dichiarazione SQL valida per fare ciò che voglio che faccia.
Se quelle citazioni graffe sono lì che stai ricevendo errori di sintassi, sono nei registri. Aggiungi segnalazione degli errori all'inizio dei tuoi file subito dopo l'apertura del tag ' Php'' error_reporting (E_ALL); ini_set ('display_errors', 1); ' –
[Il tuo script è a rischio per gli attacchi SQL Injection.] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) Scopri le dichiarazioni [preparate] (http://en.wikipedia.org/wiki/Prepared_statement) per [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) . –
Stai eseguendo la query, ma non recuperi i dati da essa con qualcosa come 'fetch()' –