Il problema è che mysql_query()
restituisce un valore booleano anziché una risorsa risultato. Ci sono due ragioni per cui questo può accadere:
- Hai eseguito una query che restituisce successo/non riuscito invece di un set di risultati (ad es.
UPDATE
) - La tua richiesta non è riuscita
Nel tuo caso la query non è riuscita. Il motivo per cui non è riuscito è perché sei sfuggito ai segni di spunta all'indietro nella stringa PHP in cui non era necessario.
Le tue righe sono così:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Quando dovrebbero essere semplicemente questo:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Ora, alcune note a margine:
- Non scrivere nuovo codice che utilizza
mysql_*
funzioni. Sono deprecati e alla fine verranno rimossi da PHP. Usa MySQLi o DOP invece (personalmente consiglio DOP, YMMV) - Annidare le funzioni del database in questo modo non è un modo particolarmente valido per scrivere il codice. È molto meglio controllare gli errori in modo esplicito dopo ogni chiamata di funzione.
Ad esempio:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Dovresti citare tutti gli identificatori, o nessuno, nelle tue query (preferibilmente tutti). Citare solo alcuni rende più difficile la lettura.
Per esempio.
SELECT `siteTitle` FROM `siteSettings`