【发布时间】:2012-05-10 07:47:02
【问题描述】:
我有这个 php 代码:
$db = new mysql;
$new_bad = $_POST['new_bad'];
$new_replace = $_POST['new_replace'];
if ($_POST['submit']) {
if ($new_bad && $new_replace) {
$db->query("SELECT * FROM BAD_WORDS WHERE BAD_WORD='".$new_bad."'");
if ($db->CNrows() == 0) {
$db->query("
INSERT INTO BAD_WORDS(BAD_WORD,REPLACE)
VALUE('".$new_bad."','".$new_replace."')
");
$err = "added succesfully..";
$tmp->assign('msg', 'true');
} else {
$err = "the word is in table ..!!";
$tmp->assign('msg', 'false');
}
} else {
$err = "you must fill all feilds ..!!";
$tmp->assign('msg', 'false');
}
}
但是当我测试它时,我发现了这个错误:
您的 SQL 语法有错误;检查相应的手册 到您的 MySQL 服务器版本,以便在“REPLACE”附近使用正确的语法) 第 1 行的 VALUES('bad1','replace1')'有什么问题??
$tmp-> = 这是一个聪明的模板类,可以毫无问题地工作
BAD_WORDS 表 = ID,BAD_WORD,REPLACE
【问题讨论】:
-
REPLACE 是保留关键字...
-
Mr47 -- 不,因为当我获取单词时我没有发现问题
-
您的代码容易受到 SQL 注入的攻击。您真的应该使用准备好的语句,将变量作为参数传递到其中为 SQL 评估。如果你不知道我在说什么,或者如何解决它,请阅读Bobby Tables 的故事。
-
Mr47 - 我已更改字段名称,我的代码现在可以使用 - 谢谢