2009-03-11 15 views
6
$id = $_REQUEST['id']; 
$Section = $_REQUEST['section']; 
$Subject = $_REQUEST['subject']; 
$type = $_REQUEST['type']; 
$Start_date1 = isset($_REQUEST['startTxt'])?($_REQUEST['startTxt']):""; 
$Venue = isset($_REQUEST['venTxt'])?($_REQUEST['venTxt']):""; 
$Facilitator = isset($_REQUEST['faciTxt'])?($_REQUEST['faciTxt']):""; 
$Level = isset($_REQUEST['lvlLst'])?($_REQUEST['lvlLst']):""; 
$Date1 = $_REQUEST['date1']; 

if(isset($_REQUEST['EDIT'])) 
{ 
    mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'"); 
    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 

    echo '<script type="text/javascript">'; 
    echo 'alert("Changes have been save!");'; 
    echo 'window.location="Admin_RecSchedMapLst.php";'; 
    echo '</script>'; 
    mysql_close($con); 
}   

Quando faccio clic su Salva, restituisce "Errore: la query era vuota" - perché questo?Perché ottengo l'errore MySQL "Query was empty"?

+0

Dove viene dichiarato $ sql? Sei sicuro di non aver voluto assegnarlo sulla riga sopra? – Brandon

risposta

15

si sta chiamando mysql_query() due volte, una volta con un parametro inesistente $sql:

mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'"); 
if (!mysql_query($sql,$con)) 

dovrebbe essere:

if (!mysql_query("UPDATE service SET Start_date='$Date1', Venue='$Venue', Facilitator='$Faci' WHERE ServiceID ='$id'")) 

Sei anche non fuggire di ingresso, lasciando aperto a SQL Injection. È consigliabile utilizzare i parametri associati idealmente o, come minimo, eseguire i parametri tramite mysql_real_escape_string().

Ad esempio:

$Date1 = mysql_real_escape_string($Date1, $conn); 
3

Non sta impostando la variabile $ sql e chiamando mysql_query() due volte.

4

Per favore, per l'amore di Internet, non creare una query SQL da soli. Utilizzare PDO.