0

データベースから一部のデータを削除するために使用する削除ページを作成したいと考えています。

IDを入れるとうまくいきますが、URLからIDを取得したいです

www.example.com/delete.php?id=1234

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'DELETE FROM MYTABLE
        WHERE created=<?php echo $_GET["id"]; ?>';

mysql_select_db('ely');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not delete data: ' . mysql_error());
}
echo "Deleted data successfully\n";
mysql_close($conn);
?>

私が問題を抱えている部分はこの部分です

 WHERE created=<?php echo $_GET["id"]; ?>';

私が得ているエラーは、「データを削除できませんでした: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、2 行目の '=' 付近で使用する正しい構文を確認してください」

4

5 に答える 5

0
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$id = mysql_real_escape_string($_GET['id']);
$sql = "DELETE FROM MYTABLE
        WHERE created='$id'";

mysql_select_db('ely');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not delete data: ' . mysql_error());
}
echo "Deleted data successfully\n";
mysql_close($conn);
?>
于 2013-08-16T08:58:20.463 に答える
0

引用を学ぶ!

  $sql = 'DELETE FROM MYTABLE
       WHERE created=<?php echo $_GET["id"]; ?>';

  $sql = 'Delete from MYTABLE WHERE created="'.$_GET['id'].'"';

次は、Google で sql-injections を検索します。$_GET['id'] が時間内に設定されているかどうかを証明する必要があることに注意してください。

于 2013-08-16T08:59:50.993 に答える