为什么我得到MySQL错误“查询为空”?

时间:2009-03-11 19:40:46

标签: php mysql

$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);
}           

当我点击保存时,它会返回“错误:查询为空” - 这是为什么?

3 个答案:

答案 0 :(得分:16)

您使用不存在的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'"))

你也没有逃避输入,让你对SQL注入开放。 您应该理想地使用绑定参数,或者至少通过mysql_real_escape_string()运行参数。

例如:

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

答案 1 :(得分:4)

为了热爱互联网,请不要自己构建SQL查询。使用PDO

答案 2 :(得分:3)

您没有设置$ sql变量并且两次调用mysql_query()。