0

基本的に私の質問が述べたように、phpmyadminでは機能しますが、php自体では機能しません。スクリプトを実行すると、true が返され、死ぬことはありません。ヘルプ!

クエリは次のとおりです。

DELETE FROM selections WHERE selectorID = '$userID' AND selectedID = '$ID'

phpスクリプトは次のとおりです。

<?php

include_once "connect_to_mysql.php";

$errorB = false;

$error = '';
$id = '';
$userID = '';
if (empty($_GET['ID']) || empty($_GET['userID'])) {
$errorB = true;

if (empty($_GET['ID'])) {
    $error = $error.'-No selected ID was sent';

}

if (empty($_GET['userID'])) {
    $error = $error.'-No selector ID was sent';

}


} else {
$id = $_GET['ID'];
$userID = $_GET['userID'];
echo $id.$userID;
$sqlInsert = mysql_query("DELETE FROM selections WHERE selectorID = '$userID' AND selectedID = '$ID'") or die (mysql_error());
echo 'shz';
}

if ($errorB) {
echo $error;

}



?>

私のデータベースは次のようになります。

 id|selectorID|selectedID
 3  1          4
 4  1          5
4

1 に答える 1

2

あなたの最初の、しかしより少ない問題は、PHP 変数の大文字と小文字を区別する性質です:

ここ

$sqlInsert = mysql_query("DELETE FROM selections WHERE selectorID = '$userID' AND selectedID = '$ID'") or die (mysql_error());

を参照して$IDいますが、次のものしかありません$id:

$id = $_GET['ID'];

正しく:

$sqlInsert = mysql_query("DELETE FROM selections WHERE selectorID = '$userID' AND selectedID = '$id'") or die (mysql_error());

重要な注意点

これはおそらくうまくいきますが、これはSQL インジェクションを起こしやすいです! 代わりに PDO を使用するか、少なくとも値をエスケープしてください!!!

于 2013-02-20T15:09:29.607 に答える