PDO / bindValue, похоже, не работает

Судя по всему, что я нашел и увидел, это кажется правильным. Когда я печатаю $ query, результат будет следующим:

«INSERT INTO для клиентов (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (?,?,?,?,?,?,?,?,?)»

Параметры должны быть заполнены переменными в bindValues ​​(). Так, например …

INSERT INTO клиенты (FirstName, MiddleInit, LastName, адрес, город, штат, почтовый индекс, электронная почта, пол) ЦЕННОСТИ (Билл, А, Хопкинс, 123 пр., ….)

Я хотел бы придерживаться этого метода — он окружен блоком try / catch. Из распечатки переменной запроса я вижу, в чем проблема.

Что мне не хватает? Я действительно ценю, что вы ищете!

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (?,?,?,?,?,?,?,?,?)';
echo $query;
$statement = $db->prepare($query);
$statement->bindValue(1, $firstName);
$statement->bindValue(2, $middle);
$statement->bindValue(3, $lastName);
$statement->bindValue(4, $address);
$statement->bindValue(5, $city);
$statement->bindValue(6, $state);
$statement->bindValue(7, $zip);
$statement->bindValue(8, $email);
$statement->bindValue(9, $gender);
$success = ($statement->execute());

0

Решение

Нам нужно больше кода с учетом ошибки, но вы можете попробовать это с подготовленными утверждениями:

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (:firstName, :middle, :lastName, :address, :city, :state, :zip, :email, :gender)';
$statement = $db->prepare($sql);
$statement->execute(array(':firstName'=>$firstName, ':middle'=>$middle, ':lastName'=>$lastName, ':address'=>$address, ':city'=>$city, ':state'=>$state, ':zip'=>$zip, ':email'=>$email, ':gender'=>$gender));
0

Другие решения

Других решений пока нет …