我只是一个初学者,我的代码有什么问题,我正在尝试对此进行试验,以便我要创建的网页不会受到mysql注入的攻击。这样做的正确方法是什么:
<?php
$host="localhost";
$username="root";
$password="";
$db_name="testing";
$tbl="hospital";
$connection=mysql_connect($host, $username, $password) or die("cannot connect!");
mysql_select_db($db_name, $connection) or die("cannot select db!");
$LASTNAME = $_POST[lname];
$FIRSTNAME = $_POST[fname];
$FIRSTNAME=(isset($_POST['fname']||trim($_POST['fname'])=="")?die('Error:Enter Firstname!')
mysql_escape_string(trim($_POST['fname']));
$sqlque="INSERT INTO hospital (LASTNAME, FIRSTNAME)
VALUES ('$LASTNAME', '$FIRSTNAME')";
if (!mysql_query($sqlque,$con))
{
die('Error: ' . mysql_error());
}
echo "<script>alert('Record successfully added!')</script>";
mysql_close($con)
?>
这是错误,请帮助,谢谢:
Parse error: parse error, expecting `','' or `')'' in C:\wamp\www\sql injection check\aisaction.php on line 20
答案 0 :(得分:7)
答案 1 :(得分:1)
死后遗失:
('错误:输入名字!')
答案 2 :(得分:1)
只是针对遇到此问题的任何人的更新。现在首选的方法是使用PDO http://php.net/manual/en/book.pdo.php和准备好的语句。
具体而言,PHP扩展要么不再支持,要么很快就不会在PHP中得到支持。 PDO也比MySQL或MySQLi更便携
$db = new PDO(/*connection info*/);
$sql = "SELECT * FROM tbl WHERE condition1 = :param1 AND condition2 = :param2";
$stmt = $db->prepare($sql);
$stmt->bindValue(":param1", 10);
$stmt->bindValue(":param2", "banana");
$stmt->execute();