mySqlステートメントからPDOプリペアドステートメントに切り替えようとしていますが、挿入が成功した場合に使用する必要があるif / elseステートメントの正しい構文を理解するのに問題があります(以前はそうでしたif($result) {...}
)。
$ stmt-> execute();を知っています。成功した場合はtrueを返し、失敗した場合はfalseを返しますが、それに基づいて動作するようにステートメントを設定する方法を決定できませんでした。
新しいコード(PDOプリペアドステートメント)
$gender = $_POST['gender'];
if ($gender==="female" ) {
try {
$stmt = $conn->prepare('INSERT INTO customer_info (fname...) VALUES(:fname...)');
$stmt->bindParam(':fname', $_POST['fname'], PDO::PARAM_STR);
$stmt->execute();
} catch(PDOException $e) {
echo $e->getMessage();
}
これは元のif ($gender==="female")
関数の残りです
$result = @mysql_query($qry);
if($result) {
$qry="SELECT * FROM customer_info WHERE user_name='$_POST['user_name']' AND password='$_POST['password']'";
$result=mysql_query($qry);
if($result) {
if(mysql_num_rows($result) == 1) {
//user_name Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_USER_ID'] = $member['user_id'];
session_write_close();
header("location: flatter_iframe.html");
exit();
}else {
header("location: login_failed.html");
exit();
}
物事を単純化するためにほとんどの変数を削除しました(コードが同じであるため)