MySQL文のエラーについて

このQ&Aのポイント
  • MySQL文において、特定の箇所でエラーが発生しています。エラーメッセージによると、SQLの構文が間違っている可能性があります。具体的には、INSERT INTO文の一部が正しくないとされています。
  • エラーメッセージによると、MySQLのサーバーバージョンに対応するための正しい構文が足りていないようです。INSERT INTO文の一部が正しく変換されていない可能性があります。
  • PHPの変数やDBのカラム名には問題がないため、エラーの原因はSQLの構文にあると考えられます。具体的には、INSERT INTO文の一部が正しくないため、エラーが発生しています。
回答を見る
  • ベストアンサー

MySQL 文のエラーにつきまして

INSERT INTO toukou_table (username, shopname, taikenbi, shimei, minutes, price, repeat, hyouka, title, comment, flag) VALUES ('$username', '$shopname', '$taikenbi', '$shimei', '$minutes', '$price', '$repeat', '$hyouka', '$title', '$comment', '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 'repeat, hyouka, title, comment, flag) VALUES('~', 'アロマフェアリー' at line 1 というエラーが出ますが、一見、どこがどう間違ってるのか、さっぱりわかりません。 PHPの変数の内容は事前にvar_dump()で確認済みで問題はありません。 DBのカラム名にも問題がありません。 どこがどう間違ってるのか、ご指摘お願い致します。

  • MySQL
  • 回答数4
  • ありがとう数7

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

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

カラム名のrepeatが 予約語です。 カラム名を変更するか、バッククォート (` ) で囲みます。

beterugius
質問者

お礼

ありがとうございます^^ それは知りませんでした。

その他の回答 (3)

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.3

最後、flagがint(1) なのに '0' を入れていますか? 数字ですから0を入れてください。

beterugius
質問者

補足

数字として、0を入れましたが、同じエラーが出ました。 ちなみに自分スカ⇒asyura-0423 ですので、申請お願いできますか。 詳しくお話聞きたいです。

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.2

コンパイルは通ったんですよね。ということは値に問題がありそうなんですが、 すいませんが、 INSERT INTO toukou_table (username, shopname, taikenbi, shimei, minutes, price, repeat, hyouka, title, comment, flag) VALUES ('$username', '$shopname', '$taikenbi', '$shimei', '$minutes', '$price', '$repeat', '$hyouka', '$title', '$comment', '0'); 全体をvar_dump()等で表示してみてください。

beterugius
質問者

お礼

ありがとうございます。

beterugius
質問者

補足

はい、コンパイルは通ってるとは思います。SQL文の手前の部分はですが。 データベース側の型は、 username : varchar(30) shopname: varchar(200) taikenbi: varchar(20); shimei: varchar(20) minutes: varchar(5) price: varchar(10) repeat:varchar(30) hyouka:varchar(20) title: varchar(100) comment: varchar(600) flag: int(1) です。 ---------------------------------------------- var_dump() の内容ですが、 string(15) "~" string(21) "トマトの思い出" string(10) "2016/11/20" string(9) "フリー" string(2) "50" string(5) "10000" string(18) "また行きたい" string(15) "★★★★★" string(9) "テスト" string(24) "テストですよ^^ --------------------------------------------------- " 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 'repeat, hyouka, title, comment, flag) VALUES('空条承太郎', 'トマトの思' at line 1

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.1

repeat, hyouka, title, comment, flag) VALUES('~', 'アロマフェアリー' の近くって書いてますよね。 指摘されているのは'$taikenbi'かと思います。 中身はなにが入っていましたか?

beterugius
質問者

お礼

ご回答どうもありがとうございました。

beterugius
質問者

補足

string(10) "2016/11/20" です。

関連するQ&A

  • MySQL insert文に関するエラーについて

    ○質問の主旨 MySQLのデータベースにテーブルを作ってinsert文で データを追加しようとするとシンタックスエラーが出ます。 SQL文が間違っているのかと思いGoogle検索や本で調べたりしましたが、 なぜ文法エラーが発生するのか分かりません。 エラーと対処方法をご存知の方がいらっしゃいましたらご教示願います。 ○質問の補足 // usersテーブル create table users ( id int not null auto_increment primary key, created datetime not null, modified datetime not null, username varchar(255), password varchar(40) ); desc users; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | created | datetime | NO | | NULL | | | modified | datetime | NO | | NULL | | | username | varchar(255) | YES | | NULL | | | password | varchar(40) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+ insert into users (created, modified, username, password) values (now(), now(), 'test1', 'test1'), (now(), now(), 'test2', 'test2') ); ERROR 1064 (42000): 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 ')' at line 3

    • ベストアンサー
    • MySQL
  • PHPで、HTMLメールの際のエラー

    HTMLメールを送る下記スクリプトにおきまして、管理人宛てのメール本文を 見ると、添付画像のように、生のHTML文のついたメールが届いてしまいます。 普通のHTMLメールにするには、どこがどう間違っているのか、ご指導いただき たいです。 ちなみにサーバーはさくらサーバーです。 --------------------------------------------------------------------------------------------------------------- ////////////////////////////////////////// // 新着口コミを管理人にメールで知らせる // ////////////////////////////////////////// $to = "~"; // 管理人宛て $mail_title = " ユーザーが新着口コミを投稿しました。"; $header = "From: ~ Content-Type:text/html; charset=ISO-2022-JP Content-Transfer-Encoding:8bit "; //$uniqid = uniqid(); $to = mb_convert_encoding($to, "UTF-8", "auto"); // $toは、自動的にエンコードされない。 $mail_title = mb_convert_encoding($mail_title, "UTF-8", "auto");    $html_header = '<!DOCTYPE html"><html><meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP"></head><body bgcolor="#FFFFCC">';    $html_footer = '</body></html>'; $comment_header = $username." 様\n\n口コミ店舗名:".$shopname."\n\n"; $comment = $html_header."\n\n".$comment_header.$comment."\n\n"; // $comment = str_replace("<br>", "\n", $comment); // $comment = mb_convert_encoding($comment, "UTF-8", "auto"); $comment_anchor = "<a href=\"http://~.com/tokyo/admin/kuchikomi_edit.php?title=".$title."&comment=".$comment_copy."&username=".$username."&shopname=".$shopname."\">口コミ編集</a>"; $comment_anchor = mb_convert_variables($comment_anchor, "UTF-8", $title, $comment_copy, $username, $shopname); $comment = $comment."\n\n".$comment_anchor.$html_footer; $comment = mb_convert_encoding($comment, "UTF-8", "auto"); $header = mb_convert_encoding($header, "UTF-8", "auto"); mb_send_mail($to, $mail_title, $comment, $header); // メール送信

    • ベストアンサー
    • PHP
  • エラーをいくらチェックしても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 vercharについて

    create table salemanagement.syohin( syohin_no int(20), syohin_name verchar(100), kubun verchar(100), cost int(20), price int(20), suryo int(20), purchase_no int(20), purchase_name verchar(100), PRIMARY KEY(syohin_no,purchase_no)); テーブルを作成しようとすると上記の文で、以下のエラーが出ます。 ERROR 1064 (42000): 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 'verchar(100), kubun verchar(100), cost int(20), price int(20), suryo int(20), pu' at line 3 vercharの部分をcharにするとテーブル作成ができます。 原因は何なんでしょうか?

  • SQL文のエラー

    SQL文でエラーが表示されます。どの部分を修正すればいいですか? SQL文が長いので文字列を結合する演算子「.」を使って複数行に分けています。 エラー内容:SQLSTATE[42000]: Syntax error or access violation: 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 '= ? and product_id = product.id' at line 2 //商品番号だけでなく、商品名や価格も表示したいので商品情報を保持するproductテーブルと 結合する。 //全て取得するのでSELECTは* //favoriteテーブルにはcustomer_idとproduct_id //productテーブルにはid, name, price $sql = 'SELECT * FROM favorite, product' . 'WHERE customer_id = ? and product_id = product.id '; // ?に顧客番号を指定する。 // favoriteテーブルの商品番号(product_id列)と、productテーブルの商品番号(id列)が // 一致している行だけが必要なので、WHERE句に条件を追加する。

  • PHPとMYSQLでデータ登録

    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 上記のようにエラーでました。分かる方いらっしゃいましたらよろしくお願いします。 ソースは下の通りです。 <?php $con = mysql_connect("localhost","root","matsushima") or die(mysql_error()); mysql_select_db("koukou") or die(mysql_error()); $sql = "insert into area(name_area) values('".$_POST[name_area]."')";//SQL文の作成 $res = mysql_query($sql) or die(mysql_error());//クエリの実行 mysql_close($con);//切断 ?> <html> <head> <title>登録完了画面(サンプルリスト)</title> <meta name="keywords" content="入力フォーム,確認画面,サンプル"> </head> <body> <p>

  • MySQL初心者で困っています

    MySQL初心者です。 「やさしいJava活用編」を参考に,MySQLデータベース表を作成しました。 ソースは以下の通りです。 ---[Sample01.txt]----- CREATE DATEBASE sample01; use sample01; CREATE TABLE smpl_table (id int(10), name varchar(50)); INSERT INTO smpl_table VALUES (2, 'い'); INSERT INTO smpl_table VALUES (3, 'ろ'); INSERT INTO smpl_table VALUES (4, 'は'); SELECT * FROM smpl_table; ---ここまで----- 以下が実行コマンドです -------------- mysql> \. C:\Sample01.txt 以下が実行結果です。 -------------- ERROR 1064 (42000): 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 'DATEBASE sample01' at line 1 ERROR 1049 (42000): Unknown database 'sample01' ERROR 1046 (3D000): No database selected ERROR 1046 (3D000): No database selected ERROR 1046 (3D000): No database selected ERROR 1046 (3D000): No database selected ERROR 1046 (3D000): No database selected 以上のような結果が返ってきて正しく実行できません。 MySQLについて初心者なので 詳しいことがわからず困っています どなたかご教授お願いします。

  • MySQLに画像を保存したい

    閲覧、ありがとうございます。 MySQLに画像を保存しようとして苦戦しています。 multipart/form-dataオプションをつけてpostし、phpでMySQLに入れようとしています。 header("Content-Type: image/jpeg"); $data = file_get_contents($_FILES['photo']['tmp_name']); echo $data; とするとちゃんと画像が表示できるのですが、 $query = mysql_query("insert into img_table (img_field) values $data"); とすると 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 ' … と怒られてしまいます。 ためしにphpMyAdminから同じデータをアップロードすると$dataの部分が0xff...となっております。 文字コードの問題も考え、addslashesなどつけているのですがやはりアップロードできません。 画像をMySQLに保存するにはどのようにしたらよろしいでしょうか? よろしくお願いします。

  • JSPのエラー原因がわかりません。

    皆様にはお世話になっております。 JSPでMySQLのDBにデータを新規登録させるものを作っていますが、書込みができなくて困っています。 実行すると JDBC 接続エラー java.sql.SQLException: 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 '+VALUES ('名前','','','','','null','','','')' at line 1 と出てしまいます。エラー箇所は // クエリーを実行する stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO adres (name, zip, adrs, fhone, fax, pfhone, mail, birth, info) +VALUES ('" + name + "','" + zip + "','" + adrs + "','" + fhone + "','" + fax + "','" + pfhone + "','" + mail + "','" + birth + "','" + info + "')"); この部分とわかってはいるのですが、 どこが間違っているのかわからない状態なので、どなたか御教授お願い致します。

    • ベストアンサー
    • Java
  • XAMPPでのSQL文を使ったデータの追加方法

    NO.,属性,種別,ID,所属,ジャンル,タイトル,URLのフィールドを持ったテーブルを作成し、そこにSQL文でレコードを追加したいのですが、エラーが出て追加されません。 SQL文とエラー文は下記の通りです。 SQL文は、 INSERT INTO jobsite (NO.,属性,種別,ID,所属,ジャンル,タイトル,URL) VALUES('0','a','a','a','a','a','a','a'); エラー文は、 #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 'a±?a?§,c¨Ra?\,ID,a‰?a±?,a?,a?£a?3a?≪,a??a??a??a?≪,URL) VALUES('0','a','a','a','' at line 1 です。 原因は文字化けのような気がしますが、解決策は分かりません。 よろしければ、教えてください。お願いします。 ちなみに、テーブル自体では文字化けをしておりません。

    • ベストアンサー
    • MySQL