電子書籍の厳選無料作品が豊富!

PHP4.3+MySQL4.0.25+Win2000Proで構築中です。
条件が一致するかどうか調べて、一致するレコードがあれば上書き、一致しなければ新規登録をさせています。

mysql_select_db("table_name", $mysql);
$result=mysql_query("SELECT * FROM challenge WHERE id=$id && dai=$dai && tyu=$tyu && syo=$syo", $mysql);
$number = mysql_num_rows($result);
とし、
if($number){
$sql="UPDATE challenge SET mycom='$mycom', procom='$procom', sinsei='$sinsei' where id=$id and dai=$dai and tyu=$tyu and syo=$syo";
$update=mysql_query($sql,$mysql);
}else{
$sql="INSERT INTO challenge values ('$id','$dai','$tyu','$syo','$status','$mycom','$procom','$taicom','$sinsei','$kyoka')";
$insert=mysql_query($sql,$mysql);
}
mysql_close($mysql);
一致するレコードがあれば上書き、なければ新規登録させようとしていますが、新規書き込みはできるのですが上書きができません。
エラーがでるわけでもなし、ただ変化がないというだけです。
$updateの中身を見てみましたが何も入っていません。
ユーザーにはupdate権限がありますし、テーブルに権限は設定していません。
何かお気づきの点がありましたらご教授お願いいたします。

A 回答 (2件)

こんにちは。




$update = **************

の後に、print mysql_error($con);

を入れて、実行してみてください。
SQLにエラーがあれば、エラー内容が表示されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
エラーがありました。

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 'Xト, procom=登録テスト, sinsei=1134572400 where id=1 and dai=1

文字化けが原因?という気がするのですが、どう対処すればいいでしょうか。
MySQLAdminを入れているのですが、接続時に「このキャラクタ設定では文字化けを起こす可能性があります。サーバーのキャラクタ設定→latin1 クライアントのキャラクタセット→sjis」と毎回怒られていたので、気にはなっていたのですが、登録は問題なくできていたようだったので無視していました。これが原因でしょうか。

お礼日時:2005/12/15 16:59

こんにちは。



UPDATE時の$sqlを表示するとどうでしょうか。
(INSERTが出来ているなら問題ないと思います)
    • good
    • 0
この回答へのお礼

問題ありませんでした・・・

仕方がないので、かなり不本意ではありますが
削除→新規追加
ということでupdateのかわりにすることにしました。
何度もご回答いただきましてありがとうございました。

お礼日時:2005/12/16 09:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!