
PHPバージョン4.4.4を使用しています。
画像を複数同時アップロードする(下記コード参照)のを作成している最中で、
画像ファイルは問題なくアップロード出来るのですが、
そのアップロードされたファイル名だけを
MySQLに書き込み(アップデート)をしたいのですが、
何故か出来ません。
==============
$count = 0;
<コード省略>
$count++;
$uploaded[$count] = $this_upload;
if (array_key_exists(1, $uploaded)) {
$mpic[1]=", picture_1='".$uploaded[1]['large']."', picture_1t='".$uploaded[1]['small']."'";
} else {
$mpic[1] = '';
}
if (array_key_exists(2, $uploaded)) {
$mpic[2]=", picture_2='".$uploaded[2]['large']."', picture_2t='".$uploaded[2]['small']."'";
} else {
$mpic[2] = '';
}
if (array_key_exists(3, $uploaded)) {
$mpic[3]=", picture_3='".$uploaded[3]['large']."', picture_3t='".$uploaded[3]['small']."'";
} else {
$mpic[3] = '';
}
if (array_key_exists(4, $uploaded)) {
$mpic[4]=", picture_4='".$uploaded[4]['large']."', picture_4t='".$uploaded[4]['small']."'";
} else {
$mpic[4] = '';
}
if (array_key_exists(5, $uploaded)) {
$mpic[5]=", picture_5='".$uploaded[5]['large']."', picture_5t='".$uploaded[5]['small']."'";
} else {
$mpic[5] = '';
}
if (array_key_exists(6, $uploaded)) {
$mpic[6]=", picture_6='".$uploaded[6]['large']."', picture_6t='".$uploaded[6]['small']."'";
} else {
$mpic[6] = '';
}
if (array_key_exists(7, $uploaded)) {
$mpic[7]=", picture_7='".$uploaded[7]['large']."', picture_7t='".$uploaded[7]['small']."'";
} else {
$mpic[7] = '';
}
if (array_key_exists(8, $uploaded)) {
$mpic[8]=", picture_8='".$uploaded[8]['large']."', picture_8t='".$uploaded[8]['small']."'";
} else {
$mpic[8] = '';
}
if (array_key_exists(9, $uploaded)) {
$mpic[9]=", picture_9='".$uploaded[9]['large']."', picture_9t='".$uploaded[9]['small']."'";
} else {
$mpic[9] = '';
}
$todayis = strftime('%A, %B %#d, %Y - %H:%M:%S ') ;
$who = $session['first_name'];
$query = "LOCK TABLES $table3_1 WRITE";
mysql_query($query);
$query = "UPDATE $table3_1 SET date_time_add_pic_2 = '$todayis',
by_who_pic_2 = '$who',
$mpic[1] $mpic[2] $mpic[3] $mpic[4] $mpic[5] $mpic[6] $mpic[7] $mpic[8] $mpic[9],
date_time_rmv_pic = '',
by_who_pic_rmv = ''
WHERE cID = '$c_id'";
mysql_query($query);
$query = "UNLOCK TABLES";
mysql_query($query);
==============
下記のようなコードを入れてみると
内容があるものはちゃんと表示されますし、
内容がないものは表示されません。
==============
echo $mpic[1];
echo $mpic[2];
echo $mpic[3];
echo $mpic[4];
echo $mpic[5];
echo $mpic[6];
echo $mpic[7];
echo $mpic[8];
echo $mpic[9];
==============
一体何が間違っているのか、エラーコードが出ないので解りません。
何処が間違っているのでしょうか?
教えて頂けると大変助かります。
どうぞ宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こういう場合って、基本的に2つしか原因がないんですよね。
1.SQL文が間違っている(DB接続が正しくない場合も含む)
mysql_query($query); の前に「echo $query;」を入れて、そのSQL文が正しく動くかどうかをチェックしてみてください。
2.$queryの作り方が間違っている。
1.とほぼ同じなのですが、こちらは根本的なSQLの構文エラーを疑ってください。
この回答への補足
if (array_key_exists(1, $uploaded)) {
$ch1 = 1;
$mpic[1]=", picture_1='".$uploaded[1]['large']."', picture_1t='".$uploaded[1]['small']."'";
} else {
$ch1 = 0;
$mpic[1] = '';
}
if (array_key_exists(2, $uploaded)) {
$ch2 = 1;
$mpic[2]=", picture_2='".$uploaded[2]['large']."', picture_2t='".$uploaded[2]['small']."'";
} else {
$ch2 = 0;
$mpic[2] = '';
}
if (array_key_exists(3, $uploaded)) {
$ch3 = 1;
$mpic[3]=", picture_3='".$uploaded[3]['large']."', picture_3t='".$uploaded[3]['small']."'";
} else {
$ch3 = 0;
$mpic[3] = '';
}
if (array_key_exists(4, $uploaded)) {
$ch4 = 1;
$mpic[4]=", picture_4='".$uploaded[4]['large']."', picture_4t='".$uploaded[4]['small']."'";
} else {
$ch4 = 0;
$mpic[4] = '';
}
if (array_key_exists(5, $uploaded)) {
$ch5 = 1;
$mpic[5]=", picture_5='".$uploaded[5]['large']."', picture_5t='".$uploaded[5]['small']."'";
} else {
$ch5 = 0;
$mpic[5] = '';
}
<6~9同じく省略>
// if you want to replace the pics, delete old pic and upload new pic
if (!empty($row['picture_1'])) {
if ($ch1==1) {
unlink('../img/' . $row['picture_1']);
unlink('../img/' . $row['picture_1t']);
}
}
if (!empty($row['picture_2'])) {
if ($ch2==1) {
unlink('../img/' . $row['picture_2']);
unlink('../img/' . $row['picture_2t']);
}
}
if (!empty($row['picture_3'])) {
if ($ch3==1) {
unlink('../img/' . $row['picture_3']);
unlink('../img/' . $row['picture_3t']);
}
}
if (!empty($row['picture_4'])) {
if ($ch4==1) {
unlink('../img/' . $row['picture_4']);
unlink('../img/' . $row['picture_4t']);
}
}
if (!empty($row['picture_5'])) {
if ($ch5==1) {
unlink('../img/' . $row['picture_5']);
unlink('../img/' . $row['picture_5t']);
}
}
if (!empty($row['picture_6'])) {
if ($ch6==1) {
unlink('../img/' . $row['picture_6']);
unlink('../img/' . $row['picture_6t']);
}
}
if (!empty($row['picture_7'])) {
if ($ch7==1) {
unlink('../img/' . $row['picture_7']);
unlink('../img/' . $row['picture_7t']);
}
}
if (!empty($row['picture_8'])) {
if ($ch8==1) {
unlink('../img/' . $row['picture_8']);
unlink('../img/' . $row['picture_8t']);
}
}
if (!empty($row['picture_9'])) {
if ($ch9==1) {
unlink('../img/' . $row['picture_9']);
unlink('../img/' . $row['picture_9t']);
}
}
$todayis = strftime('%A, %B %#d, %Y - %H:%M:%S ') ;
$who = $session['first_name'];
$query = "LOCK TABLES $table3_1 WRITE";
mysql_query($query);
$query = "UPDATE $table3_1 SET date_time_add_pic_2 = '$todayis',
by_who_pic_2 = '$who'
$mpic[1] $mpic[2] $mpic[3] $mpic[4] $mpic[5] $mpic[6] $mpic[7] $mpic[8] $mpic[9],
date_time_rmv_pic = '',
by_who_pic_rmv = ''
WHERE cID = '$c_id'";
mysql_query($query);
$query = "UNLOCK TABLES";
mysql_query($query);
nanasi1976さま、どうも有難うございます。
echo $query;
を使用して間違ってる箇所を見つけ修正し、
問題なくMySQLに書き込み(アップデート)が出来たのですが、
今度は、元の画像ファイルを新たな画像ファイルに置き換える場合、
元の画像ファイルを先ずサーバーから消去させてから新しい画像ファイルをアップロードする
というのにする為、新たなコード(上記コード参照)を加え、このコードで問題なく動くのですが、ここで問題です。
例えば、写真1~3(picture_1, picture_2, picture_3)
の中には既に画像ファイルがあるとします
(写真4~9は画像ファイルがありません)。
その写真1の画像はそのままで、写真2と写真3だけ
新たな画像ファイルに置き換えようとした時、
何故か、新たな写真2の画像ファイルは写真1になり、
新たな写真3の画像ファイルは写真2になってしまうのです。
これを写真3だけ新たな画像ファイルに置き換えようとしても、
写真3の画像ファイルはアップデートされず、
代わりに写真1のところにその新たな画像ファイルが置き換えられるのです。
何処が間違ってるのでしょうか?
それとも何処が欠けてるコードがあるのでしょうか?
すみませんが教えて頂けると助かります。
宜しくお願いします。
No.4
- 回答日時:
なんだか話がややこしくなってきましたが、大丈夫でしょうか?
憶測ですが、画像1をそのまま、画像2と画像3を差し替えということは、SQLの$mpic[1]に画像2の情報が入っているのではないでしょうか?そうだとすれば、旧・画像1が画像2にupdateされるのはおわかりですよね?
画像2、画像3を新しい画像に差し替えるだけであれば、ファイルの差し替えだけで十分だと思うので、SQLでのupdateは必要ないような気がします。
どうしてもSQLでのupdateを必要とするなら、まず既存の情報をDBから取得して、その中から変更したい部分だけを差し替えて、update文にsetしてください。
この回答への補足
nanasi1976さま、
アドバイス、どうも有難うございます。
はい、その通りです。
ファイルの差し替えとは、どのようにして差し替えするのでしょうか?
すみません、PHPとMySQLについてはまだ勉強中なのもので。
No.3
- 回答日時:
とりあえず書き込みの権限はあるのでしょうか?
参照権限しかないならできないのは当たり前ですね
またデバッグとして
mysql_query($query);の行を
mysql_query($query) or die(mysql_error());
に置き換えてエラーを拾えないかみてみるとどうでしょう?
yambejpさま、どうも有難うございます。
echo $query;
を使用して間違ってる箇所を見つけ修正し、
問題なくMySQLに書き込み(アップデート)が出来ました。
回答番号:No.1 nanasi1976さまへの
補足・御礼メッセージを見て頂けると分かると思いますが、
又新たな問題で先へ進めません。
お忙しい中すみません、何処が間違っているのか、
教えて頂けるととても助かります。
No.2
- 回答日時:
php.iniのdisplay_errorsはOn、error_reportingはE_ALL & ~E_NOTICEなどに
なっていますか?
(php4だとdisplay_errorsは無いように書いてありますけど、個人的には
覚えてません・・・)
http://jp2.php.net/manual/ja/errorfunc.configura …
http://jp2.php.net/manual/ja/errorfunc.configura …
あと、echo $queryで出力されたSQLをMySQLで直接発行した場合に正常に発行されますか?
トランザクション(コミット)はどうでしょうか?
naktakさま、どうも有難うございます。
echo $query;
を使用して間違ってる箇所を見つけ修正し、
問題なくMySQLに書き込み(アップデート)が出来ました。
回答番号:No.1 nanasi1976さまへの
補足・御礼メッセージを見て頂けると分かると思いますが、
又新たな問題で先へ進めません。
お忙しい中すみません、何処が間違っているのか、
教えて頂けるととても助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記エラーメッセージ解決について
-
ループ内に任意行を差し込む処...
-
MySQLのエラー出力
-
データベースから,そのレコー...
-
次のエラーメッセージ検証 テ...
-
会員登録したらメールが送られ...
-
検索表示について
-
テーブルにINSERTができません...
-
PHP+MYSQLでレコードの表示させ方
-
for文で表示する画像を10件づつ...
-
mysqlにあるemailへそれぞ...
-
phpのデータベースを使用したsq...
-
mysql_fetch_rowが 1 を返すこ...
-
MySQLにデータが書き込まれない
-
sprintf関数での%Sが分かりませ...
-
MYSQLからのarrayデータをjpgra...
-
PHPの検索システムについてご教...
-
エラーが出ます。myswl
-
テーブルに入っているデータと...
-
XML/SerializerでMySQLデータを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Resource id #3 をフィールドの...
-
リストから詳細画面に遷移する...
-
sqlから多次元配列に要素を格納...
-
stringaddslashes 半角¥が消える
-
PHP+MySQLでの検索結果の横並び...
-
会員登録したらメールが送られ...
-
PHPで絞り込み検索結果の件数を...
-
下記バグ("SQL:\\"$sql\\"の実...
-
「mysqlclient」の事が分からな...
-
ボタンのonclick時における関数...
-
OpenPNEのER図はありませんか
-
変数同士の引き算が出来ない
-
コメント部のエラー
-
mysqlのinsert文について、ご指...
-
SQLサーバーに接続させたい(JS...
-
DB(MySQL)から複数行のデータを...
-
PHPのSQLインジェクションはspr...
-
データベースから値の取り出し...
-
PHPからMySQLの起動について
-
SQLのif()に関して。。。
おすすめ情報