
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
Access パラメータクエリをcsv...
-
VIEWの元のテーブルのindexって...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
Unionした最後にGROUP BYを追加...
-
[MySQL] 3つのテーブルの結合で...
-
WordpressのContact form 7でzi...
-
SQLにて特定の文字を除いた検索...
-
エクセルの関数について教えて...
-
LEFT JOIN と GROUP BY
-
クエリ表示と、ADOで抽出したレ...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
カラム名でseqとidではどちらが...
-
EXPLAINのtypeがALLのときの対...
-
NOT INをNOT EXISTSで書き直したい
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報