Параметризованные запросы PHP вставка

1

Я пытаюсь вставить введенные данные из формы в базу данных MySQL с php для школьного проекта.

Если вы найдете несколько примеров, но не можете заставить их работать. Я сделал это без параметризованных запросов, и он работал нормально. Код выглядел так:

$user_firstName = $_POST['firstName'];
$user_lastName = $_POST['lastName'];
$user_receiveTexts = "true";                 
$user_mobileNumber = $_POST['mobileNumber'];
$user_receiveNewsletter = $_POST['receiveNewsletter'];
$user_email = $_POST['email'];

if(isset($_POST['submit'])) {
   $sql = "INSERT INTO subscribers (firstName, lastName, receiveTexts, mobileNumber, receiveNewsletter, email)
   VALUES ('$user_firstName', '$user_lastName', '$user_receiveTexts', '$user_mobileNumber', '$user_receiveNewsletter', '$user_email' )";

Затем я попытался изменить его для использования параметризованных запросов/подготовленных операторов, но не могу заставить его работать.

$sql = "INSERT INTO subscribers (firstName, lastName, receiveTexts, mobileNumber, receiveNewsletter, email) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $mysqli->prepare($sql);

$stmt->bind_param($val1, $val2, $val3, $val4, $val5, $val6);

$val1 = $user_firstName;
$val2 = $user_lastName;
$val3 = "true";
$val4 = $user_mobileNumber;
$val5 = $user_receiveNewsletter;
$val6 = $user_email;

$stmt->execute();

В значительной степени я просто пытаюсь помешать SQL-инъекции на нее :) Любая помощь приветствуется. благодаря

Теги:
sql-injection
sql-insert
parameterized-query

1 ответ

1

Вам не хватает первого аргумента bind_param, строка, в которой указывается, какие из параметров представляют собой строки или целые числа.

$stmt->bind_param('ssssss', $val1, $val2, $val3, $val4, $val5, $val6);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню