2009-03-11 8 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); 
}   

Cuando hago clic en guardar, aparece "Error: la consulta estaba vacía", ¿por qué es esto?¿Por qué obtengo el error de MySQL "La consulta estaba vacía"?

+0

¿Dónde se declara $ sql? ¿Estás seguro de que no quisiste asignarlo en la línea de arriba? – Brandon

Respuesta

15

que está llamando mysql_query() dos veces, una vez con una $sql parámetro inexistente:

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

debería ser:

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

Estás tampoco escapa a su entrada, dejándolo abierto a Inyección SQL. Debe utilizar los parámetros vinculados idealmente, o al menos ejecutar sus parámetros a través de mysql_real_escape_string().

Por ejemplo:

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

no está configurando la variable $ sql y llamar a mysql_query() dos veces.

4

Por favor, por amor a Internet, no construya una consulta SQL usted mismo. Use PDO.

Cuestiones relacionadas