クエリの実行方法が SQL インジェクションに対してオープンであることがわかっているため、MySQLi で最初の準備済みステートメントを作成しようとしています。
これの bind_param と bind_result の部分が本当にわかりません。誰かがこれを可能な限り最も馬鹿げた方法で説明してくれませんか。
これが機能する私のクエリです。
$sql = "UPDATE formdata SET name = '$varName', email = '$varEmail', address = '$varAddress', city = '$varCity', state = '$varState', zip = '$varZip', submitDate = '$varDate' WHERE promoCode = '$varPromo'";
$mysqli->query($sql);
そして、これが準備されたステートメントでの私の試みです。
$query = "UPDATE formdata SET name = ?, email = ?, address = ?, city = ?, state = ?, zip = ?, submitDate = ? WHERE promoCode = '$varPromo'";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $varName, $varName, $varEmail, $varAddress, $varCity, $varState, $varZip, $varDate);
$stmt->execute();
$stmt->bind_result($varName, $varName, $varEmail, $varAddress, $varCity, $varState, $varZip, $varDate);
$stmt->fetch();
header("location: index.php?success=1");
exit();