Mysql UPDATE出来ません
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/更新出来ず
投稿日時 - 2008-01-09 08:31:13
$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());
投稿日時 - 2008-01-09 09:27:13
感激です!
今までの試行錯誤がウソみたい!
sql文をご指摘通り書き直したらUPDATE出来ました。有難うございました。
{$hoge}形式を勉強します。
【書き直したsql文】
$sql=<<<eof
UPDATE `{$DATANAME}`
SET `rem`='{$new_rem}'
WHERE `id`='{$id}'
eof;
投稿日時 - 2008-01-09 10:08:44
このQ&Aは役に立ちましたか?
3人が「このQ&Aが役に立った」と投票しています
回答(2)