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

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

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

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

Q&A

解決済

2回答

1918閲覧

PDOでInsertをしたいのですが、、できません

SugiuraY

総合スコア317

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

0グッド

0クリップ

投稿2016/08/13 06:35

お世話になっております。標題の通りの作業を意図しており、下記のようなコーディングをしております。特にmysqlへのアクセス自体には問題がないことを確認しております。
なぜ、insertできないのかがわからず、ご教示いただきたく存じます。
なお、ブラウザで実行すると、

XXXXXXXXXXX.jp ページは機能していません
XXXXXXXXXXXX.jp では現在このリクエストを処理できません。
HTTP ERROR 500

となっており、そもそもcatchもしてくれていないようです。

$dsn = 'mysql:dbname=XXXX;host=XXXXXXXX.lan'; $user = 'XXXXXXXX'; $password = 'XXXXXXX'; try{ $dbh = new PDO($dsn, $user, $password); $code= 1111; $entity="A法人"; $stmt = $pdo -> prepare("INSERT INTO entitymaster (id,secid,name) VALUES ('', :secid, :name)"); $stmt -> bindParam(':secid', $code, PDO::PARAM_STR); $stmt -> bindValue(':name', $entity, PDO::PARAM_STR); $stmt -> execute(); } catch (PDOException $e){ print('Connection failed:'.$e->getMessage()); die();}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$dbh 変数に PDO のインスタンスを代入しているのにそのあとで使われている prepare メソッドへの呼び出しが存在しない変数 $pdo に対して行われているためでしょう。

lang

1<?php 2/* 中略 */ 3$stmt = $dbh->prepare(...);

投稿2016/08/13 13:30

chitoku

総合スコア1610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2016/08/13 13:54

ご回答有難うございます。 仰る通り、軽率なミスでした、申し訳ございません。宜しくお願い申し上げます。
guest

0

catchもしていないようですので、
提示されている部分以外で文法エラーが発生していると思います。

私の環境で、提示のコードだけphpにして(あえてdsnを変えず)実行して、Connectionエラーがcatchされました。
適当な行のセミコロンを消したら500になりました。

提示の部分だけのphpにした場合にも同じエラーは起こるなら話は変わりますが、
まずは提示の部分だけで動くか確認してみてください。

それで起こるようでしたら、ファイルの文字コードを確認するか、ファイル内の日本語をすべてなくしてためしてみてください。

あとは先頭に

ini_set("display_errors", On); error_reporting(E_ALL);

を挿入してエラーが表示されるようにしてみるとかでしょうか。

投稿2016/08/13 11:49

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2016/08/13 13:54

ご回答有難うございます。無事解決致しました。宜しくお願い申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問