• ベストアンサー

コメント部のエラー

お世話になっております。 只今、フォームに入力したデータをPHPにてMySQLへPOSTする、といったスクリプトを組んでいるのですが、$sql3 = "insert into saller values(null..... という所で下記のようなエラーが出てしまいます。 parse error, unexpected T_STRING in 実はこのスクリプト、他で同じものを記述しているのですが、他では一切問題なく登録が出来ます。 しかしながら、記述ミスかな?などと思いながら試行錯誤を繰り返しているのですが、試にと、//コメントアウトして動かしたところ、やはり同じ場所で同じエラーが表示されてしまいます。 以上、コメントとして処理してもエラーが出た事に戸惑い、何処をどう処理して良いか分からずにおります。ご指導頂ければ有難いのですが・・・宜しくお願いいたします。 追伸:上記スクリプト内で$sql3ですが、以下のようなスクリプトから、素人ながらテーブルがダブらないようにと、分別してみたのですが、プログラミング上、このような記述は適切なのか否か、ということを諸先輩方々の意見も頂戴できれば幸いです。 (途中、省略しております) mysql_connect('localhost','root','******'); mysql_select_db('member'); $hiduke = date("y-m-d"); $sql= "select loginid from test where loginid like '$id'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows <> 0){ $sql2 = "update test set    ・    ・ mysql_query($sql2); }else{ $sql3 = "insert into saller values(……)";//ココでエラー mysql_query($sql3); }

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

//ココでエラーの箇所でエラーがでているとは限らないので、 その周辺で;がないとか、括弧が足りないとか。 ソースが省略されているのでわかりませんが、 どこまでの処理ならエラーがでないかをもう少し特定してみてはどうですか?

sadacha
質問者

お礼

kaiwarepon様 はじめまして、こんにちは。 早速のご回答を有難う御座います。 実は、投函後、幾度か見直しているうちに、kaiwarepon様の仰るように、; が抜けている事に気がつきました。お騒がせして申し訳ありません。 いずれにせよ、貴重な回答に感謝しております。有難う御座いました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

とりあえず $sql3 = "insert into saller values(……)"; mysql_query($sql3) or die(mysql_error()); でデバッグしてみてください

sadacha
質問者

お礼

yambejp様 こんにちは。お世話になっております。 先のご回答者様へのお礼でも述べましたが、投函後に自分の記述のミスに気付きました。 投函を削除しようにも、何やら時間が経たないと出来ないようで…そのままになってしまいました。 いずれにしても、今回の回答も今後の参考にさせて頂きたいと思います。貴重な回答を有難う御座いました。

関連するQ&A

  • ``を付けないと作動しません

    今までは問題なかったのですが、突然テーブル名を `test`で囲まなくては作動しなくなってしまいました $sql="insert into `test` values(1,'okweb')"; $result=mysql_query($sql,$con); mysql_close($con); なぜなんでしょう? どうしたら元に戻るんでしょうか?

    • 締切済み
    • PHP
  • PHPを使用してMySQLを更新について

    SQLを勉強しようと思い、本を見ながらやっているのですが、入力する文字が全て半角でないとPHPで正常に登録できません。コマンドプロンプトから「Insert ・・・ 」と下記の通り打ち込むと問題なく登録できます。本当は下記のtest1~3は全角/半角を意識せず入力出来るようにしたいと思っています。お手数ですがご教示お願いします。 使用している環境は下記です。 WinXP HE Mysql 5.0 php 5.2.1 Apache 2.0.46 (SQLを更新しようとしている部分 ・・・ 下記”test3”は「3」だけ全角にしているとエラーになるが、半角で「3」と記述すると正常に登録できる) $sql = "INSERT INTO cdinfo(cd_no,artist_name,title,genre,melody1) VALUES(9,'test1','test2','J-POP','test3')"; $result = query($sql,$con); (上記”query”の中身) <?php function query($sql,$con) { $result = mysql_query($sql,$con); if ($result == false) { echo ("クエリーの実行に失敗しました!"); exit(); } return $result; } ?>

    • ベストアンサー
    • MySQL
  • トランザクションについて教えてください

    PHPとMysqlを利用しています。MySQL4.1.18です。 同じテーブルに2つ以上の値をINSERTする場合、 1つでもエラーがあればロールバックさせるということはできますでしょうか。 あらかじめ「id=1」の値を登録しておき、この場合1つめがエラーになるので 2つめも実行されないでほしいのですが、実行されてしまいます。 テーブルのタイプはInnoDBにしています。 どうぞよろしくお願いします。 以下を参考に作成しました。 http://oshiete.nikkeibp.co.jp/qa3065237.html $sql = "begin"; $rst = mysql_query($sql, $con); //1つめ $sql= "INSERT INTO T_test(id,name)values('1','山田')"; $rst = mysql_query($sql, $con); if(!$rst){$err="err";} //2つめ $sql= "INSERT INTO T_test(id,name)values('2','鈴木')"; $rst = mysql_query($sql, $con); if(!$rst){$err="err";} $sql = "commit"; $rst = mysql_query($sql, $con); if($err){ $sql = "rollback"; $rst = mysql_query($sql, $con); }

    • ベストアンサー
    • MySQL
  • mySQLでINSERT Errorとなります。

    初心者です。よろしくお願いいたします。 データを入れたいのですが、エラーとなってしまいます。 以下でデータベースとテーブルを作成し、 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } $sql = 'CREATE DATABASE tori'; if (mysql_query($sql, $db)) { echo "データベースtori の作成に成功しました\n"; } else { echo 'データベースtoriの作成に失敗しました: ' . mysql_error() . "\n";} mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $query ="create table {$tbl_name} ( id char(8) primary key, date TEXT, sex TEXT, age TEXT )TYPE=MyISAM"; mysql_query($query); $query ="INSERT INTO `houzingpark`.`hatogaya` ( id , date , sex , iro ) VALUES ( '2', 'uu', 'ii', 'po' )"; mysql_close($db); ?> 以下で入れ込みたいのですが、出来ないのです。 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $sql="INSERT INTO hatogaya ( id , date , sex , iro ) VALUES ( 3, 2005-12-3, mesu, cya )"; mysql_query($sql); if(!$result){print 'INSERT Error!';} echo $sql; mysql_close($db); ?> でINSERTしようとするのですが、INSERT Error!と表示されてしまいます。 Adminで見るとデータベースとテーブルは出来ているのですが、どうしてもINSERTできないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • 複数テーブルの更新方法について

    会員情報の登録処理について 会員情報を管理するテーブルが3つあります。 もし、下記の(2)(3)でエラーのとき 中途半端に会員基本情報のみ出来てしまいます。 このときロールバックみたいな機能があるのでしょうか? みなさんは、このような場合どのように対応しているのでしょうか? ご指導よろしくお願いします。 【環境】 MYSQL:ver5 PHP:ver5 他に特にありません テーブル (1)会員基本情報 :staff  ※必ず存在する (2)会員関連情報1:staff_op1  ※ないときもある 画面選択項目で会員ごとに選択件数が違うため別テーブルにしている。  例:好きな○○のジャンルなど複数選択みたいな... (3)会員関連情報2:staff_op2  ※ないときもある  例:好きな○○のジャンルなど複数選択みたいな... //会員基本情報登録 $sql = "INSERT INTO staff ('staff_cd') VALUES ('12345')"; $result=mysql_query($sql); if($result){ //会員基本情報登録がOKのとき //会員関連情報1を登録(実際は選択件数分ループが必要) $sql = "INSERT INTO staff_op1 ('staff_cd','item1') VALUES ('12345','00001')"; $result=mysql_query($sql); if($result){ //会員関連情報1登録がOKのとき //会員関連情報2を登録(実際は選択件数分ループが必要) $sql = "INSERT INTO staff_op2 ('staff_cd','item1') VALUES ('12345','00001')"; $result=mysql_query($sql); if($result){ } else{ $error[] = "insert staff_op2 table err" } } else{ $error[] = "insert staff_op1 table err" } } else{ $error[] = "insert staff table err" } if(!$error){ $error[] = "会員情報登録完了!" }

    • 締切済み
    • PHP
  • 複数テーブルの更新方法について

    会員情報の登録処理について 会員情報を管理するテーブルが3つあります。 もし、下記の(2)(3)でエラーのとき 中途半端に会員基本情報のみ出来てしまいます。 このときロールバックみたいな機能があるのでしょうか? みなさんは、このような場合どのように対応しているのでしょうか? ご指導よろしくお願いします。 【環境】 MYSQL:ver5 PHP:ver5 他に特にありません テーブル (1)会員基本情報 :staff  ※必ず存在する (2)会員関連情報1:staff_op1  ※ないときもある 画面選択項目で会員ごとに選択件数が違うため別テーブルにしている。  例:好きな○○のジャンルなど複数選択みたいな... (3)会員関連情報2:staff_op2  ※ないときもある  例:好きな○○のジャンルなど複数選択みたいな... //会員基本情報登録 $sql = "INSERT INTO staff ('staff_cd') VALUES ('12345')"; $result=mysql_query($sql); if($result){ //会員基本情報登録がOKのとき //会員関連情報1を登録(実際は選択件数分ループが必要) $sql = "INSERT INTO staff_op1 ('staff_cd','item1') VALUES ('12345','00001')"; $result=mysql_query($sql); if($result){ //会員関連情報1登録がOKのとき //会員関連情報2を登録(実際は選択件数分ループが必要) $sql = "INSERT INTO staff_op2 ('staff_cd','item1') VALUES ('12345','00001')"; $result=mysql_query($sql); if($result){ } else{ $error[] = "insert staff_op2 table err" } } else{ $error[] = "insert staff_op1 table err" } } else{ $error[] = "insert staff table err" } if(!$error){ $error[] = "会員情報登録完了!" }

  • エラーをいくらチェックしてもDB Error: syntax errorがでてしまいます。

    MySQLで困ってます。 簡単な会員登録スクリプトを作っているのですが、以下のエラーが出てしまって動きません。 DB Error: syntax error INSERT INTO group (name,pwd) VALUES ('test','test') [nativecode=1064 ** 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 'group (name,pwd) VALUES ('test','test')' at line 1] PWDは実際の運用ではmd5()で暗号化する予定です。 SQL文をいくら見てもエラーが無いように思えるのですが、 どうしたものでしょうか? ちなみにサーバはロリポップを使っています。

    • ベストアンサー
    • MySQL
  • MySQLのINSERT時にたまに重複になる

    下記の通り同じデータが無かった場合に限りインサートしています。 //同じデータが既にあるか確認 $sql = "select * from `reg_data` where "; $sql .= "`Date` = '".$date."' and "; $sql .= "`ID` = '".$id."' and "; $sql .= "`No` = '".$no."'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); //データが0なら今日のレコード作成 if($rows == 0){ $sql = "insert into `reg_data` values('0', '".$date."', '".$id."', '".$no.")"; mysql_query($sql); } しかし、3%ぐらいの確立で重複インサートになってしまいます。 重複といっても 1個目のフィールドはAUTO_INCREMENTになっておりまして AUTO_INCREMENTの値が重複する事は無いです。 $date、$id、$noがまったく同じテーブルがいくつか重複した場合でも AUTO_INCREMENTの値は全て連番になっています。 重複インサートが発生しないよう改善するには どうしたら良いでしょうか。 日付を2フィールド目に書いているので 0時0分1秒辺りでインサートが集中してしまいます。 分散させられたら改善するような気がしますが いい案が思いつきません。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP+MySQLによるINSERTについて

    質問させていただきます。 先日からPHPよりSQLテーブルへの値の追加を試しているのですが、なかなかうまくいきません。いろいろなサイトで資料を探しましたが、それでもできませんでした。 //問題個所 $sql = "INSERT INTO whatsnew(date,title,body) VALUES('.$ThisTime.','.$Title.','.$Body.')"; $result = mysql_query($sql); date、title、bodyは(dateも含め)すべてTEXTです。ちなみにエラーが出るのではなく、何事もなかったかのようになりました(直後にif(!$result){print 'INSERT Error!';}を挿入するとINSERT Error!と表示される)。 どうすればいいか教えていただければ幸いです。

    • ベストアンサー
    • MySQL
  • INSERT INTOステートメント構文エラー

    VB.NET2003+Access2000でデータベース開発中です。 サブフォームを使ってデータグリッドのデータを編集することができるように INSERT、DELETE、UPDATE各コマンドを作成しようとしていたら、 表記ADOエラーが出て次に進めません。 INSERT INTO [編集対象テーブル名]       (列名1,列名2,・・・・) VALUES (?,?,?,?,?・・・・) というサンプルSQLですが、構文エラーって何か記述が抜けているんでしょうか? クエリビルダから「値の挿入」を選んでできたSQLなんですけれど。 解説書を見てもぴったりのコメントがないもので、どうかよろしくお願いいたします。

専門家に質問してみよう