PHP勉強中です。
phpでデータベースに接続したのですが、行の追加ができません。
投稿フォームから取得して、
取得したものでINSERTしたいのですが上手くいきません。
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/users
on line 46行目ということで46行目には
$flag = $stmt->execute($data);
46行目が実行できていない?何が悪いのか分かりません。教えてください。
以下コードです。
<?php // エラー表示をonにする error_reporting(-1); ini_set("display_errors", 1); // formから取得 $no = $_GET['no']; $name = $_GET['name']; $birth = $_GET['birth']; $email = $_GET['email']; $dsn = 'mysql:dbname=LAA0886279-----;host=------------------'; $user = 'LAA---------'; $password= '-----------'; try { $pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); //データベースのに1行追加させてる $sql = 'insert into okuru (no, name) values (?, ?)'; if ($sql == null){ print('接続に失敗しました。<br>'); }else{ print('接続に成功しました。<br>'); } // SQL文に当てはめるDATAを作成 $data = [ 'no' => $no , 'name' => $name ]; $stmt = $pdo->prepare($sql); $stmt->bindValue('?', $no, PDO::PARAM_INT); $stmt->bindValue('?', $name, PDO::PARAM_STR); $flag = $stmt->execute($data); if ($flag){ print('データの追加に成功しました<br>'); }else{ print('データの追加に失敗しました<br>'); } print('<hr>'); //データベースの中身を表示させてる $sql = "SELECT * FROM okuru"; foreach ($pdo ->query($sql) as $row) { print($row['no']); print(' '); print($row['name']); print('<br>'); } } catch (PDOException $e) { echo '接続失敗 ' . $e->getMessage(); } ?>回答2件
あなたの回答
tips
プレビュー