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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

Q&A

解決済

1回答

1040閲覧

pdo updateできない 疑問符プレースホルダ データベース 更新できない

hiro0208

総合スコア75

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

0グッド

0クリップ

投稿2020/02/18 05:00

編集2020/02/18 05:08

フォームにSELECT文で、置いた値をUPDATEしてデータベースの値を更新することができません。

値を設定した状態ならSQL文が動き更新されます。

イメージ説明

<?php /******************************************************************************* ■データベース接続 *******************************************************************************/ ```ここに言語を入力 $user = 'AAA'; $pass = 'BBB'; $dns = 'mysql:dbname=AAA;host=mysql333.phy.lolipop.lan;charset=utf8'; //データベースへ接続 $pdo = new PDO($dns, $user, $pass); ``` /******************************************************************************* ■更新処理 *******************************************************************************/ ```ここに言語を入力 if(isset($_POST['update02'])){ try{ $sql = "UPDATE `timecard_regist_form` SET `timecart_no` = ?, `timecart_name` = ?,`timecart_month` = ?,`timecart_day` = ?,`timecart_start_hour` = ?,`timecart_start_min` = ?,`timecart_end_hour` = ?,`timecart_end_min` = ? WHERE `timecart_no` = ?"; $stmt = $pdo->prepare($sql); $array = array($_POST['timecart_no'], $_POST['timecart_name'], $_POST['timecart_month'], $_POST['timecart_day'], $_POST['timecart_start_hour'], $_POST['timecart_start_min'], $_POST['timecart_end_hour'], $_POST['timecart_end_min']); $stmt->execute($array); }catch(Exception $e){ $res = $e->getMessage(); } } <?php if(isset($_POST['update01'])) { ?> <form action="" method="post"> <table class="table" border="1"> <tr> <th>No</th><th>名前</th><th>月</th><th>日</th><th>開始(時)</th><th>開始(分)</th><th>終了(時)</th><th>終了(分)</th><th>編集</th><br> </tr> <tr> <td><?php echo $timecart_no; ?><input type="hidden" name="timecart_no" size="3" value="<?php echo $timecart_no; ?>" required></td> <td><input type="text" name="timecart_name" size="10" value="<?php echo $timecart_name; ?>" required></td> <td><input type="text" name="timecart_month" size="3" value="<?php echo $timecart_month; ?>" required></td> <td><input type="text" name="timecart_day" size="3" value="<?php echo $timecart_day; ?>" required></td> <td><input type="text" name="timecart_start_hour" size="3" value="<?php echo $timecart_start_hour; ?>" required></td> <td><input type="text" name="timecart_start_min" size="3" value="<?php echo $timecart_start_min; ?>" required></td> <td><input type="text" name="timecart_end_hour" size="3" value="<?php echo $timecart_end_hour; ?>" required></td> <td><input type="text" name="timecart_end_min" size="3" value="<?php echo $timecart_end_min; ?>" required></td> <td><input type="submit" name="update02" size="" value="更新"></td> </tr> </table> </form> <?php

}

?>

__________________________________________________________________________________________ ```ここに言語を入力 $sql = "UPDATE `timecard_regist_form` SET `timecart_no` = ?, `timecart_name` = ?,`timecart_month` = ?,`timecart_day` = ?,`timecart_start_hour` = ?,`timecart_start_min` = ?,`timecart_end_hour` = ?,`timecart_end_min` = ? WHERE `timecart_no` = ?";

上記のSQL文を、値を設定した下記のSQL文にしたら、更新、UPDATEはできます

$sql = "UPDATE `timecard_regist_form` SET `timecart_name` = 'php02', `timecart_month` = '2', `timecart_day` = '22', `timecart_start_hour` = '10', `timecart_start_min` = '00', `timecart_end_hour` = '22', `timecart_end_min` = '00' WHERE `timecart_no` =1";

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

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

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

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

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

yoorwm

2020/02/18 05:10

$sql の最後が " `timecart_no` = ?" で終わっていて $array の最後が $_POST['timecart_end_min'] で終わっていますが、正しいですか?
hiro0208

2020/02/18 05:15

正しいかどうか判断できませんでした。
m.ts10806

2020/02/18 06:40

単に「過不足なくコード提示したのか?」という確認かと思います
guest

回答1

0

ベストアンサー

最後の``timecart_no = ?に対応する値を与えていないようです。

投稿2020/02/18 05:04

maisumakun

総合スコア146018

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

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

hiro0208

2020/02/18 05:11

$array = array($_POST['timecart_no'], $_POST['timecart_name'], $_POST['timecart_month'], $_POST['timecart_day'], $_POST['timecart_start_hour'], $_POST['timecart_start_min'], $_POST['timecart_end_hour'], $_POST['timecart_end_min'], $_POST['timecart_no']); と配列の最後にWHERE句のために、$_POST['timecart_no']を追記したら反映しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問