0

如果我提交在错误行中生成的以下 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;



     ?>
4

3 回答 3

3

您正在使用 2 个变量 - $sqlLOTS $sqlLots.

您应该使用 1 个变量名称,并在创建查询的整个过程中使用它。

此外,我会在您的 if 语句开始之前定义您决定使用的变量。

我还会考虑使用带有准备好的语句的PDO库。

于 2012-06-10T12:41:17.330 回答
1

$sqlLOTS您在运行查询时正在使用:

$result = mysql_query($sqlLOTS)

但是,您正在设置$sqlLots

$sqlLots = 'update LOTS set packageID = "" where packageID ='.$delID;

变量名区分大小写,因此您有两个单独的变量,并且$sqlLOTS在运行查询时确实为空。

于 2012-06-10T12:37:25.657 回答
0

变量名区分大小写:

$result = mysql_query($sqlLOTS) or die(mysql_error());

您正在初始化具有不同名称的变量并使用不同的变量作为 mysql_query() 参数。您需要使用 $sqlLots。

或者在此行中将 $sqlLots 更改为 $sqlLOTS:

$sqlLots = 'update LOTS set packageID = "" where packageID ='.$delID;
于 2012-06-10T12:36:43.807 回答