Salve a tutti! Ho tirato su uno script che data un stringa la va a cercare su tutti i campi di tutte le tabelle.
Codice PHP:
$database="miodb";
$str="parola da cercare";
//trovo tutte le tabelle del database
$query=("SHOW TABLES FROM $database");
$sql=mysql_query($query, $conn);
while($rs=mysql_fetch_array($sql))
{
//trovo tutti i campi per ogni tabella
$query1=("SHOW COLUMNS FROM $rs[0]");
$sql1=mysql_query($query1, $conn);
while($rs1=mysql_fetch_array($sql1))
{
$query2=("SELECT * FROM $rs[0] WHERE $rs1[0] LIKE '%$str%' ");
$sql2=mysql_query($query2, $conn) or die (mysql_error());
if(mysql_num_rows($sql2) != 0)
{
$rs2=mysql_fetch_array($sql2);
echo"$rs2[0]";
}else{
echo"Nessun Record trovato";
}
}
}
Il problema è che non funziona!!! Dice che "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option LIKE '%parola da cercare%'' at line 1". Se stampo una query a caso e la incollo su mysql-query-browser funziona perfettamente! Ho anche salvato tutte le query stampate e le ho lanciate come file esterno dalla shell di mysql: tutto ok! Allora il problema di questo codice dov'è?