
MySQLでのアップデートがうまくいかないので質問させていただきます。
やりたいこととしては、ログイン後、ID(customer_code)がDBにあれば、該当する行のデータを画面に表示させ、もし入力値を変更する場合は画面上で変更、「更新」ボタンを押すと、そのままDBに反映させる(update)という動きです。
未ログイン時の動きは思ったように実現できています。
var_dump( $res ); としたところ、bool(false)がかえってきたため、SQLの値がうまく戻ってきていないことがわかりました。
また、print mysql_error($conn); としたところ、「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'comment = 'XXXX', university = 'XXXXX', favorite_sports = 'XXXXX', ' at line 1 」というようなエラーがかえってきました。
※XXXの所は、画面で入力した文字が入っています。
1点気になっているのは、comment = 'XXXX', university = 'XXXXX', favorite_sports 以外に seibetsu などの値も変更しているのに、上部のエラー内容にのってこないこと です。
(的を得ているかわかりませんが・・。)
もともとのコードは、正常に動くものからコピーをし、値の部分を適当なものに変えています。
カンマなどが間違っているのかと思い、何度か最初から試してみましたが、いっこうに変化がないため、質問させていただいた次第です。
以下のupdateのコードで何かおかしな所があればご教授いただければと思います。
よろしくお願いします。
/**-----------------------------------------------------------
*
* 会員登録画面で「更新」ボタンがクリックされた時の処理。
* ログイン状態に応じて、UPDATE または INSERT を実行する。
*
------------------------------------------------------------*/
if( $_REQUEST["cmd"] == "regist_member" )
{
if( $_SESSION["customer_code"] != "" )
{
// ここに、ログイン済の場合の処理を記述。
$sql = " update DBpractice set ";
$sql .= " customer_code = '" . $_REQUEST["customer_code"] . "',";
$sql .= " pass = '" . $_REQUEST["pass"] . "',";
$sql .= " name = '" . $_REQUEST["name"] . "',";
$sql .= " mail = '" . $_REQUEST["mail"] . "'";
$sql .= " comment = '" . $_REQUEST["comment"] . "',";
$sql .= " university = '" . $_REQUEST["university"] . "',";
$sql .= " favorite_sports = '" . $_REQUEST["favorite_sports"] . "',";
$sql .= " seibetsu = '" . $_REQUEST["seibetsu"] . "',";
$sql .= " where customer_code = '" . $_SESSION["customer_code"] . "'";
$res = mysql_query( $sql );
print mysql_error($conn);
var_dump( $res );
}
else
{
// ここに、ログイン未の場合の処理を記述。
$sql = "insert into DBpractice( customer_code, pass, name, mail, comment, university, favorite_sports, seibetsu, del_flag, reg_date ) ";
$sql .= "values( ";
$sql .= " '".$_REQUEST["customer_code"]."', ";
$sql .= " '".$_REQUEST["pass"]."', ";
$sql .= " '".$_REQUEST["name"]."', ";
$sql .= " '".$_REQUEST["mail"]."', ";
$sql .= " '".$_REQUEST["comment"]."', ";
$sql .= " '".$_REQUEST["university"]."', ";
$sql .= " '".$_REQUEST["favorite_sports"]."', ";
$sql .= " '".$_REQUEST["seibetsu"]."', ";
$sql .= " '0', ";
$sql .= " now() ) ";
$res = mysql_query( $sql );
}
}
No.2ベストアンサー
- 回答日時:
今回も凡ミスですよ
>$sql .= " seibetsu = '" . $_REQUEST["seibetsu"] . "',";
今度はカンマがいらないです
これだとwhereの前にカンマがはることになります
今回は上手くできました。(しっかり更新されています。)
最初、カンマの有り無しの意味がわかりませんでしたが、今回のケースで理解することができました。
コードだけでなく、説明いただきありがとうございました。
No.1
- 回答日時:
とりあえず
>$sql .= " mail = '" . $_REQUEST["mail"] . "'";
のケツにカンマが抜けているのでmailとcommentのつながりが変だね
この回答への補足
ご回答ありがとうございます。
確かに、カンマがないですね。。
調べてみた所、コピー元はカンマがなくうまく動いているのですが、とりあえず自分のコードをご指摘どおり修正してみたところエラーの箇所が変わりました。
ただ、以前、問題があるようです。。
何か他にも原因が分かればご教授いただけると幸いです。
■エラー内容
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where customer_code = 'XXX'' at line 1
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INSERTを行う際に別の表のデー...
-
sqliteとの互換
-
【php+mysql】mysqlのレコード...
-
.sqlのファイルをそのままコマ...
-
Perlでexecuteをまとめて実行し...
-
MySQLの.sqlファイルを実...
-
mysqlって???(汗
-
SQLで取得したフィールドをSQL...
-
パスワードの暗号化
-
以下のSQL文の間違いがわかりま...
-
ライセンスについて
-
ユーザーが存在すれば
-
MYSQLについて
-
mySQLのスピード
-
「CSE」や「かねやん」からのMy...
-
配列の要素でmysqlに問い合わせ
-
PHPからMySQLが動かせません
-
MySQLに画像を保存したい
-
ローカルエリア内のMySQLサーバ...
-
バージョン3.23.53からアップグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP+MySQLから結果セット取得後...
-
F5対策 sql発行ページにて
-
【php+mysql】mysqlのレコード...
-
どうしても、%$keyword%でひっ...
-
複数条件の検索について
-
my sqlはどこにあるのか?
-
PEARでレコード数の取得
-
MySQLで、INSERT文でエラー
-
PHPで特定のレコードを取り出す
-
PHP+MySQLによるINSERTについて
-
updateがうまくできない。
-
SQLiteについて
-
mysql PHPでUPDATE
-
SQL whereの中のif文について
-
Perlでexecuteをまとめて実行し...
-
コメントが消えてしまいます
-
PHP+MySQLでデータ登録がうまく...
-
mySQLで複雑な演算
-
mysql PHPでUPDATE
-
MySQLカラム名は日本語と英数字...
おすすめ情報