Я пытаюсь для формы регистрации с сохранением для предотвращения инъекций SQL в виду, но в конечном итоге с фатальной ошибкой: -PHP заявление bind_param не работает
(Call to undefined method mysqli_stmt::bind_parm()),
Можете ли вы, ребята, помогите мне, почему я «Я получаю эту фатальную ошибку, а также хочу знать, что мое кодирование защищено или нет от взлома.
Вот файл соединения
<?php
define('HOST','localhost');
define('USER','root');
define('PASSWORD_HOST','');
define('DATABASE','ubhs');
if(defined('HOST') && defined('USER') && defined('PASSWORD_HOST') && defined('DATABASE')){
$conn = mysqli_connect(HOST, USER, PASSWORD_HOST, DATABASE);
}else{
die(connection_failed.mysqli_connection_error());
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
и здесь isportion РНР файл
$st_f_name_err1 = "";
$st_f_name_err2 = "";
$st_l_name_err1 = "";
$st_l_name_err2 = "";
$st_f_name = $_POST['st_f_name'];
$st_l_name = $_POST['st_l_name'];
$userinput = true; //trigger
if(isset($_POST['st_submit'])){
if(empty($st_f_name)){
$st_f_name_err1 = "You have to provide first Name";
$userinput = false;
}
if (!preg_match("/^[a-zA-Z ]*$/",$st_f_name)){
$st_f_name_err2 = "You can't provide numeric value in name field";
$userinput = false;
}else{
$st_f_name = test_input($st_f_name);
}if(empty($st_l_name)){
$st_l_name_err1 = "You have to provide last Name";
$userinput = false;
}
if (!preg_match("/^[a-zA-Z ]*$/",$st_l_name)){
$st_l_name_err2 = "You can't provide numeric value in name field";
$userinput = false;
}else{
$st_l_name = test_input($st_l_name);
}
if($userinput==true)
{
$stmt = $conn->prepare("INSERT INTO student_info (st_f_name,st_l_name,st_class,st_dob) VALUES(?,?,?,?)");
$stmt->bind_parm("sssi",$st_f_name,$st_l_name, $st_class,$st_dob);
$stmt->execute();
}
}
все это выше код в том же файле? или два разных файла? –
Вы имели в виду ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)? – tyteen4a03
Как @ tyteen4a03 в вашем вызове 'bind_parm' есть опечатка, которая должна быть' bind_param'. –