2009-03-11 17 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

あなたがかつて存在しない$sqlパラメータで、二回mysql_query()を呼んでいる:

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'")) 

あなたはまたに開いてあなたを残して、あなたの入力をエスケープしていませんSQLインジェクション バインドされたパラメータを理想的に使用するか、少なくともパラメータをmysql_real_escape_string()まで実行する必要があります。例えば

:あなたは$のSQL変数を設定し、()を2回するmysql_queryを呼び出していません

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

インターネットを愛するために、自分でSQLクエリを作成しないでください。 PDOを使用してください。

関連する問題