这个PHP函数中第一个参数$ con是什么?

时间:2014-05-15 15:17:06

标签: php parameters database-connection

我知道mysqli_real_escape_string()函数用于防止SQL注入,但我不知道为什么这个函数被设计为采用两个参数而不是一个?我理解$ _POST [“firstname”]是使用此函数进行转义的输入字符串,但为什么$ connection也需要作为第一个参数?我是一个初学的PHP学习者,对不起,如果这个问题没有多大意义。     

// escape variables for security
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
var_dump($firstname);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";

if (!mysqli_query($con,$sql)) {
   die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

1 个答案:

答案 0 :(得分:1)

PHP manual

所示

此函数的过程样式需要一个mysqli实例,换句话说,与先前创建的数据库的连接(这可能过于简单化):

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

为了在没有第一个参数的情况下调用此函数,您需要实现mysqli类,因此为函数提供连接而不添加任何其他参数。这就是课程的实现方式:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

这将是以面向对象的方式调用函数的方法:

$string = $mysqli->real_escape_string($string);

希望这能澄清一下你的问题。