質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

解決済

phpでデータベースに接続したのですが、行の追加ができません。

ni-moni-mo
ni-moni-mo

総合スコア0

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

2回答

0評価

0クリップ

19閲覧

投稿2018/06/28 09:04

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(); } ?>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

papinianus
papinianus

2018/06/28 09:19

この学習段階で、無から仕様書読んでここまで書けるとは俄には信じがたいのですが、出典を書いていただけませんか?
ni-moni-mo
ni-moni-mo

2018/06/28 10:34

Orlofskyさん、初めて質問してみたのですがよくわからなくて。アドバイスありがとうございます。ロリポップデータベースなのですが、ロリポップデータベースとつければいいのでしょうか?
ni-moni-mo
ni-moni-mo

2018/06/28 10:36

papinianusさん。無からだなんて、とてもとても。他で教えていただいたり、コピペとかです。意味は少しづつ勉強中です。よろしくお願いします。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます