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

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

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

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

Q&A

0回答

908閲覧

phpでmysqlにinsertできません

watacco82

総合スコア1

INSERT

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

0グッド

0クリップ

投稿2021/10/09 13:29

phpで商品追加のページだけsqlに追加されなくて困ってます。
同じ書き方でスタッフ追加の時は問題なく動きました。
$_POSTで前のページの値は問題なく受け取れているので、sqlの方に問題があるのでしょうか?
お答えいただければ助かります????
↓問題のページ

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php try{
$pro_name=$_POST['name']; $pro_price=$_POST['price']; $dsn='mysql:dbname=shop;host=localhost'; $user='root'; $password='root'; $dbh=new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); $sql='insert into mst_product(name,price)VALUES(?,?)'; $stmt = $dbh->prepare($sql); $data[]=$pro_name; $data[]=$pro_price; echo "データベース{$dbName}に接続しました<br>"; mysqli_autocommit($link, TRUE); $stmt->execute($data); $dbh=null; print $pro_name; print"を追加しました。";// } catch(exception $e){ print "エラー"; exit(); } ?> <a href="pro_list.php">戻る</a>
</body> </html>

追加しましたと表示されるのでエラー処理はされてないと思います。

↓は問題なく動いたスタッフ追加のページです

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php try{ $staff_name=$_POST['name']; $staff_pass=$_POST['pass'];
$staff_name=htmlspecialchars($staff_name); $staff_pass=htmlspecialchars($staff_pass); $dsn='mysql:dbname=shop;host=localhost'; $user='root'; $password='root'; $dbh= new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); $sql='insert into mst_staff(name,password)VALUES(?,?)'; $stmt = $dbh->prepare($sql); $data[]=$staff_name; $data[]=$staff_pass; $stmt->execute($data); $dbh=null; print $staff_name; print"さんを追加しました。"; } catch(exception $e){ print "エラー"; exit(); } ?> <a href="staff_list.php">戻る</a>
</body> </html>

どうかよろしくお願いします。

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

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

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

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

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

m.ts10806

2021/10/09 23:04

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 それに例外をキャッチしても出力してない(俗に「例外を握りつぶす」と言います)のでエラーが起きてても具体的な内容まで把握できない実装になってます。 出力してください。
watacco82

2021/10/11 12:16

ありがとうございます、code使用しました。 具体的にどんなキャッチなら良いでしょうか?
m.ts10806

2021/10/11 22:38

質問編集されてないようですが・・ catch(exception $e){ print "エラー"; exit(); ↑ キャッチはされていて出力されてないという指摘です。 $eが持つ情報を出力してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問