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

जब मैं सहेजता हूं क्लिक करता हूं तो यह "त्रुटि: क्वेरी खाली थी" - यह क्यों है?मुझे MySQL त्रुटि क्यों मिली "क्वेरी खाली थी"?

+0

$ sql घोषित किया गया है? क्या आप वाकई ऊपर की रेखा पर इसे असाइन करने का मतलब नहीं रखते हैं? – Brandon

उत्तर

15

आप mysql_query() दो बार कॉल कर रहे हैं, एक बार एक गैर-मौजूद $sql पैरामीटर के साथ:

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

होना चाहिए:

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

आप भी अपने इनपुट से बचने नहीं कर रहे हैं, आप के लिए खुली छोड़ देते एसक्यूएल इंजेक्षन। आपको बाध्य पैरामीटर का आदर्श रूप से उपयोग करना चाहिए, या कम से कम mysql_real_escape_string() के माध्यम से अपने पैरामीटर चलाएं।

उदाहरण के लिए:

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

आप $ एसक्यूएल चर की स्थापना नहीं कर रहे हैं और mysql_query बुला() दो बार।

4

कृपया, इंटरनेट के प्यार के लिए, स्वयं एक SQL क्वेरी नहीं बनाया है। PDO का उपयोग करें।

संबंधित मुद्दे