<?php
include("db.php");
$name=$_REQUEST['name'];
$mail=$_REQUEST['email'];
$yname=$_REQUEST['yname'];
$result=mysql_query("SELECT * FROM information WHERE uname = '$name' ");
if (mysql_num_rows($result) == 0) {
$query=mysql_query("INSERT into noresult (Serial,searchname,yourname,email)
VALUES ('',$name','$yname','$mail')");
if ($query){
header('Location:nullresult.php');
}
else{
echo "Query failure";
}
}
?>
这会返回'查询失败'。它有时会与表名“寻求者”一起工作。然后我放弃它,并创建一个新表'noresult',因为前一个有点搞砸了。突然查询失败。MySQL查询未执行
注意:寻道者和noresult有相同的列。
**通过构建带有外部变量的SQL语句,您可以开放给SQL注入攻击。**此外,任何带有单引号的输入数据,如名称“O'Malley”,都会炸毁您的SQL查询。请了解使用参数化查询(最好是使用PDO模块)来保护您的Web应用程序。 [这个问题](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)有很多例子的细节。您也可以查看http://bobby-tables.com/php查找危险的替代方案和解释。 –
谢谢。不知道这些。作为初学者,我的主要目标是看我是否可以实现某些事情。下次会处理这些问题。 –
使用预准备语句的另一大好处是,您不会遇到上面遇到的引用问题。 –