![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
社内で在庫管理システムを構築することになり、本をたよりにコーディングをしているのですが、エラーが発生して先へ進めなくなってしまいました。
<?php
/* データベースに接続 */
$link = dbConnect();
/* 本日の日付を取得 yyyy-mm-dd */
$dt = date("Y-m-d");
/* リクエストデータを変数に格納 */
$act = getFormData("act");
$stk_map = getFormData("stk_map");
$stk_day = getFormData("stk_day");
$stk_div = getFormData("stk_div");
$stk_maker = getFormData("stk_maker");
$stk_brandname = getFormData("stk_brandname");
$stk_now = getFormData("stk_now");
$stk_stdprice = getFormData("stk_stdprice");
$stk_pcgprice = getFormData("stk_pcgprice");
$stk_purchaser = getFormData("stk_purchaser");
$stk_remarks = getFormData("stk_remarks");
$id = $row["id"];
if ($act == "add") {
/* ファイルアップロード処理 */
$stk_imgname1 = fileUpload("uploadfile1");
$stk_imgname2 = fileUpload("uploadfile2");
$stk_imgname3 = fileUpload("uploadfile3");
/* データを追加 */
$query = "INSERT INTO stk_t SET";
$query .= (", stk_map = " . makeSqlStr($stk_map));
$query .= (", stk_day = " . makeSqlStr($stk_day));
$query .= (", stk_div = " . makeSqlStr($stk_div));
$query .= (", stk_maker = " . makeSqlStr($stk_maker));
$query .= (", stk_brandname = " . makeSqlStr($stk_brandname));
$query .= (", stk_now = " . makeSqlStr($stk_now));
$query .= (", stk_stdprice = " . makeSqlStr($stk_stdprice));
$query .= (", stk_pcgprice = " . makeSqlStr($stk_pcgprice));
$query .= (", stk_purchaser = " . makeSqlStr($stk_purchaser));
$query .= (", stk_remarks = " . makeSqlStr($stk_remarks));
$query .= (", imgname1_c = " . makeSqlStr($stk_imgname1));
$query .= (", imgname2_c = " . makeSqlStr($stk_imgname2));
$query .= (", imgname3_c = " . makeSqlStr($stk_imgname3));
/* クエリーを実行 */
mysql_query( $query )
or die("クエリーの実行に失敗しました");
}
?>
<?php
/* MySQLとの接続を閉じる */
mysql_close($link);
?>
「クエリーの実行に失敗しました」という所でひっかかってしまいます。
文字数の関係で省略した部分があります。
解決法をご教授頂けると助かります。。
No.4ベストアンサー
- 回答日時:
そもそも、insertの場合は
insert into テーブル (カラム0, カラム1, ...) values (値0, 値1, ...)
という形式が基本のはずです。
insertとupdateの構文がゴッチャになっていませんか?
ご指摘ありがとうございます。
updateの構文を記述してしまっていたんですね……。
ご指摘の通り、insert into テーブル (カラム0, カラム1, ...) values (値0, 値1, ...) という記述に変更したところ、データベースへの登録ができるようになりました。
ありがとうございます。もの凄く嬉しいです。
所で、画像のアップロードはできるのですが、うまく表示されません。
ご教授頂ければ助かります。
No.5
- 回答日時:
> データ表示部分
ここで、「/* 画像が投稿されていれば表示 */」というコメントがついている箇所の最後にある\nは、
\を\そのものとして扱うために\\nにしなければならないのではありませんか?
また、ID~備考の各欄の中身が出ていませんが、
<?= ~ ?>というスクリプティングデリミタは文法上正しいのでしょうか?
php.iniなどでshort_open_tagを有効にしてあれば <? ~ ?> という
形式は使えますが、= が入っていいのかどうか…。
No.3
- 回答日時:
> $query .= (", stk_map = " . makeSqlStr($stk_map));
stk_map の直前のカンマは必要でしょうか?
また、今回のように、SQL文が長きにわたる場合は
ヒアドキュメントを使ってみると少しは見やすくなるかもしれません。
ご回答ありがとうございます。
ご指摘頂いた点のカンマを取りましたが変わりないようです。
ヒアドキュメントについては、少し調べてみましたが使い方がよく分かりません。。
ちなみにPHP、並びにMySQLの環境は、
PHP 4.4.5
MySQL 4.4.22
OSはWindowsです。
No.1
- 回答日時:
エラーだった所に、echo mysql_error();を
入れてはどうですか。エラーメッセージが見れます。
回答ありがとうございます。
教えて頂いたコードを挿入してみました。
以下エラーの結果です。
入庫する商品の情報を入力し、最後に「追加」を選択してください。 Bad query: 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 ' stk_map = ''1111'', stk_day = '20070423', stk_div = ''製品(PC・
翻訳してみると、どうやら SQL構文が間違っているようです。
しかし、いかんせん何処が間違っているのかさっぱり分かりません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ削除のスクリプト
-
PHP+MYSQLでレコードの表示させ方
-
実行時エラー3131 FROM 句の構...
-
MySQLでデータベースにデータin...
-
spl拡張子保存
-
テキストボックスに入れた内容...
-
codeigniter 複数モデルでトラ...
-
VBAをつかってクエリの情報を抽...
-
SELECT文を発行して、ACCESSよ...
-
MYSQL UPDATE
-
csvファイルのデータをSQLiteに...
-
日またぎの計算
-
PHPで[]の使い方について
-
PHP 10件表示 "前へ" "次へ"
-
mysql_fetch_array の速度について
-
SQLで返り値が空とでる
-
in 'where clause'のエラーの理由
-
ランダム文字列をDBにINSERT
-
カラムにデータがあるかないか...
-
データをDBからひっぱってき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに入っているデータと...
-
phpのエラーについてです
-
sqlから多次元配列に要素を格納...
-
XAMMPが起動しません。
-
SQL文2つ実行
-
DB(MySQL)から複数行のデータを...
-
縦に長い<table>でなく横に長い...
-
PHPで絞り込み検索結果の件数を...
-
PHP+mysqlでSQL文に文字数制限...
-
stringaddslashes 半角¥が消える
-
Resource id #3 をフィールドの...
-
CSVをダウンロードさせた際、CS...
-
ボタンのonclick時における関数...
-
SQLの結果が返ってこない
-
基本的なmysqlのDB操作につきま...
-
PHP+MYSQL IF文の初歩
-
会員登録したらメールが送られ...
-
mysql_query等でレコード数を変...
-
すいません。
-
ループしてしまいます
おすすめ情報