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

Kaydet'i tıkladığımda, "Hata: Sorgu boştu" ifadesini döndürür - neden bu?Neden "Sorgu boştu" MySQL Hatası alıyorum?

+0

$ sql nerede bildirildi? Yukarıdaki satırda atamak istemediğinden emin misin? – Brandon

cevap

15

Bir kez varolmayan $sql parametre ile iki kez mysql_query() aradığınız:

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

olmalıdır: Ayrıca, giriş kaçan değiliz

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

, açık bırakarak SQL enjeksiyonu. Bağımlı parametreleri ideal olarak kullanmalısınız veya en azından mysql_real_escape_string() aracılığıyla parametrelerinizi çalıştırın. Örneğin

: Sen $ sql değişken ayarlama ve() iki kez mysql_query demiyorsun

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

$ sql değişkenini ayarlamıyorsunuz ve mysql_query() öğesini iki kez çağırıyorsunuz.

4

İnternet sevgisi için lütfen kendiniz bir SQL sorgusu oluşturma. PDO kullanın.