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;

変数名では大文字と小文字が区別されるため、2つの別個の変数があり$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 に答える