PHPで以下のようなプログラムは成り立つでしょうか

エラーが出ているので成り立たないとは思いますがなぜなのかわかりません
写真3枚をそれぞれUPDATEしたしないかで SQL文を書くやり方です
そうすると
rename("$PHOTOTMP$imagefile1", "$PHOTODIR$imagefile1");
のところでエラーがでます。よろしくお願いします。
プログラムはコメント欄に

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/22 13:00:21
  • 終了:2012/06/22 14:36:53

ベストアンサー

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492012/06/22 13:31:20

   rename("$PHOTOTMP$imagefile1", "$PHOTODIR$imagefile1");
↑↑↑ この部分が全角空白になってる

ついでに

    photofilename1 = '$imagefile1',
↑↑↑ この部分も全角空白になってる

さらにSQLはダブルクォーテーションではなく、
シングルクォーテーションではないかと思われる。
(MicrosoftAccessは例外的にダブルだけど、
 CURDATE関数はなかったような・・・)

$sql = "UPDATE tblphoto SET photofilename = '$imagefile',
photofilename1 = '$imagefile1',
photofilename2 = '$imagefile2',
categoryid = '$categoryid',
jyusyo = '$jyusyo',
moyorieki = '$moyorieki',
sikiti = '$sikiti',
tatetubo = '$tatetubo',
madori = '$madori',
setubi = '$setubi',
comment = '$comment',
regdate = CURDATE()
WHERE photoid = $photoid";

エラーメッセージ不明なので、以上とりあえず。

他3件のコメントを見る
id:yamamoto170

ご指摘ありがとうございます
やはりシングルで囲むのが仕様なのですね
そちらで調整しなおしてみます。
ありがとうございます

2012/06/23 12:19:47
id:yamamoto170

シングルクォーテーションで問題なく更新できるように
なりました ありがとうございます

2012/06/23 16:30:53

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4440ベストアンサー獲得回数18242012/06/22 13:17:28

コメントには、ソースの一部をそのまま貼りつけたんですよね?

rename の行の頭に入ってる全角の空白みっつ が駄目です。
imagefile2 の rename の行にも入ってます。

あと、$sql の中身の photofilename1 の頭にある全角空白も駄目です。

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492012/06/22 13:31:20ここでベストアンサー

   rename("$PHOTOTMP$imagefile1", "$PHOTODIR$imagefile1");
↑↑↑ この部分が全角空白になってる

ついでに

    photofilename1 = '$imagefile1',
↑↑↑ この部分も全角空白になってる

さらにSQLはダブルクォーテーションではなく、
シングルクォーテーションではないかと思われる。
(MicrosoftAccessは例外的にダブルだけど、
 CURDATE関数はなかったような・・・)

$sql = "UPDATE tblphoto SET photofilename = '$imagefile',
photofilename1 = '$imagefile1',
photofilename2 = '$imagefile2',
categoryid = '$categoryid',
jyusyo = '$jyusyo',
moyorieki = '$moyorieki',
sikiti = '$sikiti',
tatetubo = '$tatetubo',
madori = '$madori',
setubi = '$setubi',
comment = '$comment',
regdate = CURDATE()
WHERE photoid = $photoid";

エラーメッセージ不明なので、以上とりあえず。

他3件のコメントを見る
id:yamamoto170

ご指摘ありがとうございます
やはりシングルで囲むのが仕様なのですね
そちらで調整しなおしてみます。
ありがとうございます

2012/06/23 12:19:47
id:yamamoto170

シングルクォーテーションで問題なく更新できるように
なりました ありがとうございます

2012/06/23 16:30:53
  • id:yamamoto170
    if (strlen($imagefile) > 0 and strlen($imagefile1) > 0 and strlen($imagefile2) > 0) {


    //すべてのファイルを変更するとき

    $sql = "UPDATE tblphoto SET photofilename = \"$imagefile\",
        photofilename1 = \"$imagefile1\",
    photofilename2 = \"$imagefile2\",
    categoryid = \"$categoryid\",
    jyusyo = \"$jyusyo\",
    moyorieki = \"$moyorieki\",
    sikiti = \"$sikiti\",
    tatetubo = \"$tatetubo\",
    madori = \"$madori\",
    setubi = \"$setubi\",
    comment = \"$comment\",
    regdate = CURDATE()

    WHERE photoid = $photoid";



    //写真のファイルを一時保存先から最終保存先に移動
    rename("$PHOTOTMP$imagefile", "$PHOTODIR$imagefile");
    $oldfile = dfirst("photofilename", "tblphoto", "photoid=$photoid",False);
    @unlink("$PHOTODIR$oldfile");

       rename("$PHOTOTMP$imagefile1", "$PHOTODIR$imagefile1");
    $oldfile1 = dfirst("photofilename1", "tblphoto", "photoid=$photoid",False);
    @unlink("$PHOTODIR$oldfile1");

       rename("$PHOTOTMP$imagefile2", "$PHOTODIR$imagefile2");
    $oldfile2 = dfirst("photofilename2", "tblphoto", "photoid=$photoid",False);
    @unlink("$PHOTODIR$oldfile2");
    }
  • id:yamamoto170
    お二方ともありがとうございます
    大変助かりました
    またこちらにご相談すると思いますがきずかれましたらお教えくださいませ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません