
PHP+MySQLでホームページ開発中ですが、MySQLで特定idのフィールドの更新処理(UPDATE)が出来ません。初心者です宜しくお願いします。
【Mysqlで確認した点】
(1)XAMPP・MyAdminからは以下のSQL文で問題なく更新できる。
"UPDATE upload_list SET rem='ABCDEF' WHERE id=15;"
【問題は?】
以下のphpからは更新できません。
【phpで確認した点は?】
(1)DBへ正常に接続してる。
(2)文字コードも正常にSETしてる。
(3)UPDATE実行後の$RESULT(返り値)がない。
(4)PHPを実行後、MyAdminでDBを確認しても更新されていない。
【phpコード】
<?php
//データベースパラメータ定義
$DBSERVER="localhost";
$DBUSER="root";
$DBPASSWORD="";
$DBNAME="up_load";
$DATANAME="upload_list";
//Mysqlに接続
if(mysql_connect($DBSERVER,$DBUSER,$DBPASSWORD))
{echo "DB接続済/";}
else
{echo "<h2>データベースに接続できません</h2>";die();} //Mysql停止
//データベースを選定
mysql_select_db($DBNAME);
//Mysqlの文字セットを定義
$sql = "SET NAMES ujis;";
$result = mysql_query($sql);
if ($result==true){echo "文字コードSET済/";}
//更新id、rem(更新記事)をSET
$id=15;
$new_rem="ABCDEF";
echo $DATANAME."/".$id."/".$new_rem."/";
//Mysql更新処理
$result=mysql_query('UPDATE $DATANAME SET rem=$new_rem WHERE id=$id;');
if ($result==true){echo "更新!";}
else
{echo "更新出来ず";}
//XAMMP phpMyAdminからは以下のSQL文で更新できた。
//UPDATE upload_list SET rem='ABCDEF' WHERE id=15;
?>
【実行後のブラウザ表示】
DB接続済/文字コードSET済/upload_list/15/ABCDEF/更新出来ず
No.2ベストアンサー
- 回答日時:
$result=mysql_query('UPDATE $DATANAME SET rem=$new_rem WHERE id=$id;');
の行をきっちりデバッグ用に書き直してください。
(1)SQL文はヒアドキュメントをつかう
(2)テーブルやフィールドはバッククォート、値はシングルクォートでくくる
(3)変数は{$hoge}形式で参照する
(4)SQL文の最後になるべく;はつけない
(5)エラーはmysql_error()で確認する。
$sql=<<<eof
UPDATE `{$DATANAME}`
SET `rem`='{$new_rem}'
WHERE `id`='{$id}'
eof;
$result=mysql_query($sql) or die($sql.mysql_error());
感激です!
今までの試行錯誤がウソみたい!
sql文をご指摘通り書き直したらUPDATE出来ました。有難うございました。
{$hoge}形式を勉強します。
【書き直したsql文】
$sql=<<<eof
UPDATE `{$DATANAME}`
SET `rem`='{$new_rem}'
WHERE `id`='{$id}'
eof;
No.1
- 回答日時:
>$result=mysql_query('UPDATE $DATANAME SET rem=$new_rem WHERE id=$id;');
の
rem=$new_rem
ですが、
変数の前後にシングルクォートが必要でしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP php エラー 2 2022/10/23 16:43
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
エラー 1068 (42000): 複数の主...
-
あるカラムの値を複数持つレコ...
-
WordpressのContact form 7でzi...
-
2つのテーブルを繋げて条件をつ...
-
sqlで、600行あるテーブルを100...
-
テーブル名を省略して「h.id」...
-
複数テーブルのGROUP BY の使い...
-
【Transact-sql】 execの結果を...
-
select文のwhere句に配列を入れ...
-
insertを高速化させたい
-
クエリ表示と、ADOで抽出したレ...
-
複数DBテーブルからのデータ取得
-
VIEWの元のテーブルのindexって...
-
Access パラメータクエリをcsv...
-
深い人、浅い人の判断
-
【Excel+MySQL】select文で返っ...
-
AUTO_INCREMENTのあるテーブル...
-
SELECT句の指定フィールドに固...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
【Transact-sql】 execの結果を...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
WordpressのContact form 7でzi...
-
クエリ表示と、ADOで抽出したレ...
-
SQLサーバから、項目の属性(型...
-
selectした大量データをinsert...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
[MySQL] 3つのテーブルの結合で...
おすすめ情報