如果我提交在错误行中生成的下面的SQL表明它运行正常,但在PHP中它告诉我“查询是空的”。
知道为什么吗?
例如,生成的字符串如下:
update LOTS set packageID = "" where packageID ='AS0610'
如果我手动提交此查询,因为我说没有错误。我试过用“”代替'',似乎没有解决问题。
<?
$delID = stripslashes($_COOKIE['delID']);
$delType = $_COOKIE['delType'];
$conn=mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
echo $conn;
if($delType=="packageID"){
$sqlLots = 'update LOTS set packageID = "" where packageID ='.$delID;
echo $sqlLots;
//returns "Quer was empty" on below line.
$result = mysql_query($sqlLOTS) or die(mysql_error());
$sqlLOTS = 'delete from PACKAGES where '.$delType.' = '.$delID;
}else{
$sqlLOTS = 'delete from LOTS where '.$delType.' = '.$delID;
}
$result = mysql_query($sqlLOTS); //or die(mysql_error());
echo "<html>";
echo "<script>";
echo "window.location = 'http://www.redIR.info/manage/index.php'";
echo "</script>";
echo "</html>";
echo 'a'.$result;
?>
答案 0 :(得分:3)
您使用的是2个变量 - $sqlLOTS
和 $sqlLots
。
您应该使用1个变量名称,并在创建查询的整个过程中使用它。
此外,我将在if语句开始之前定义您决定使用的变量。
我还会考虑使用PDO库和准备好的语句。
答案 1 :(得分:1)
运行查询时使用$sqlLOTS
:
$result = mysql_query($sqlLOTS)
但是,您正在设置$sqlLots
:
$sqlLots = 'update LOTS set packageID = "" where packageID ='.$delID;
变量名称区分大小写,因此您有两个单独的变量,并且在运行查询时$sqlLOTS
确实为空。
答案 2 :(得分:0)
变量名称区分大小写:
$result = mysql_query($sqlLOTS) or die(mysql_error());
您正在使用不同的名称初始化变量,并使用不同的变量作为mysql_query()参数。你需要使用$ sqlLots。
或者在此行中将$ sqlLots更改为$ sqlLOTS:
$sqlLots = 'update LOTS set packageID = "" where packageID ='.$delID;