Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个PHP函数中使用的第一个参数$con是什么?_Php_Parameters_Database Connection - Fatal编程技术网

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

这个PHP函数中使用的第一个参数$con是什么?,php,parameters,database-connection,Php,Parameters,Database Connection,我知道mysqli_real_escape_string()函数是用来防止SQL注入的,但我不知道为什么这个函数被设计为接受两个参数而不是一个参数?我知道$\u POST[“firstname”]是使用此函数进行转义的输入字符串,但是为什么还需要$connection作为第一个参数呢?我是一名php初学者,如果这个问题没有太多意义,我很抱歉。 // escape variables for security $firstname = mysqli_real_escape_string($con,

我知道mysqli_real_escape_string()函数是用来防止SQL注入的,但我不知道为什么这个函数被设计为接受两个参数而不是一个参数?我知道$\u 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);
?>
如图所示:

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

为了在不使用第一个参数的情况下调用此函数,您需要实例化mysqli类,从而在不添加任何其他参数的情况下为函数提供连接。这是类实例化的方式:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
这就是以面向对象的方式调用函数的方法:

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

希望这能澄清您的问题。

例如,最终字符集取决于转义。需要从当前的mysqli对象获取有关该问题的信息。@bwoebi,谢谢。您的答案非常有用。请注意,如果您觉得答案有用,请接受它。只需单击投票按钮正下方的复选标记。是一个参考,以了解如何以及何时接受答案。
$string = $mysqli->real_escape_string($string);