【发布时间】:2015-08-06 14:55:39
【问题描述】:
我一直在尝试使用 delete sql 语句从表中删除一条记录,但我发现它很难。你能看看我的代码,看看有什么问题吗?
<?php
$name=$_REQUEST['student_id'];
$query=mysql_query ("delete from studentmark
where studentmark.CODE='$code' AND studentmark.student_id='$name'");
header('location:homet.php?action=studentsubject');
?>
CREATE TABLE IF NOT EXISTS `studentmark` (
`YEAR` int(4) NOT NULL,
`TERM` varchar(15) NOT NULL,
`CODE` varchar(7) NOT NULL,
`STUDENT_ID` varchar(255) NOT NULL,
`TEST` int(3) DEFAULT NULL,
`EXAM` int(3) DEFAULT NULL,
`TNAME` varchar(15) NOT NULL,
PRIMARY KEY (`CODE`,`STUDENT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
【问题讨论】:
-
您很容易受到sql injection attacks 的攻击,而 HOW 这到底是怎么回事?除了
$code未定义... -
作为@MarcB 所说的补充,您正在使用已弃用的代码。
-
如果将
delete from更改为select * from,你会得到什么?如果您没有得到任何行,那么您的where子句不匹配任何行。请解释发生了什么问题。
标签: php mysql sql-delete composite-primary-key