• ベストアンサー

mysqlにinsertするとエラーがでますが、直せません。

insert into cb001 (rec_ymd,update_ymd,update_content,scan_ymd,rig_wro,bukken_rank,loc_genru,loc_category,post_no,address_a,address_b,address_c, buil_nm,floor_num,pay_select,parking,usage,station,on_off,route,heavy,light,mono,office,note,structure,tsubo,rent,tsubo_rent,public, security,front,contract,condition,population,app,into,owner,contact) values("'.$_POST['rec_ymd'].'","'.$_POST['update_ymd'].'","'.$_POST['update_content'].'","'.$_POST['scan_ymd'].'", "'.$_POST['rig_wro'].'","'.$_POST['bukken_rank'].'","'.$_POST['loc_genru'].'","'.$_POST['loc_category'].'","'.$_POST['post_no'].'","'.$_POST['address_a'].'","'.$_POST['address_b'].'", "'.$_POST['address_c'].'","'.$_POST['buil_nm'].'","'.$_POST['floor_num'].'","'.$_POST['pay_select'].'","'.$_POST['parking'].'", "'.$_POST['usage'].'","'.$_POST['station'].'","'.$_POST['on_off'].'","'.$_POST['route'].'","'.$_POST['heavy'].'","'.$_POST['light'].'","'.$_POST['mono'].'", "'.$_POST['office'].'","'.$_POST['note'].'","'.$_POST['structure'].'","'.$_POST['tsubo'].'","'.$_POST['rent'].'","'.$_POST['tsubo_rent'].'","'.$_POST['public'].'", "'.$_POST['security'].'","'.$_POST['front'].'","'.$_POST['contract'].'","'.$_POST['condition'].'","'.$_POST['population'].'", "'.$_POST['app'].'","'.$_POST['into'].'","'.$_POST['owner'].'","'.$_POST['contact'].'") 【エラー内容】 #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 'usage,station,on_off,route,heavy,light,mono,office,note,structure,tsubo,rent,tsu' at line 3 何がおかしいんでしょうか?何度見ても分かりません。 以上の情報以外の部分なのでしょうか? MySQL 5.1.33 です。

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

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

  • ベストアンサー
  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

「usage」が予約語だからじゃないですかね。 バッククォート(`)でかこってみてください。

s_mac_ts
質問者

補足

予約語だったとは気づきませんでした。 どの部分にバッククォートをつけたらいいんでしょうか?

その他の回答 (3)

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.4

引数の $table 消しといて。 # だめだ、寝ぼけとる。

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.3

function data2InsertParam( $table, $data ) { $names = array_keys( $data ); $values = array_map( mysql_real_escape_string, array_values( $data ) ); return "(`" . implode( "`,`", $names ) . "`) VALUES ('" . implode( "','", $values ) . "')"; } $query = "INSERT INTO `cb001` ".data2InsertParam( $_POST );

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

ANo.1です。 `usage`とします。 予約語について、他にも使われているかは見ていません。 こちらをご参照ください。 http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html

関連するQ&A

  • phpで全角英数字を半角英数字に変換したいんですが、できません。

    入力フォーム(html) <input type="text" name="update_content" size="80"> 内で「販売価格を100円引き」などと全角で記入し、 postで確認画面に送ります。 確認画面で <?php $rec_ymd = $_POST["update_content"]; ?> <input type="hidden" name="update_content" value="<?php $update_content ?>"> <?php print $rec_ymd ?> で表示させてからinsert.phpで 全角を半角に直してからINSERTしたいんですが、どのようにしたらいいのでしょうか。 insert.php $update_content = mb_convert_kana($update_content,"n"); $sql='INSERT INTO TEST (update_content) VALUES ("'.$update_content.'"); mysql_query($sql); としても echo $update_content; で表示させようとしたら変換どころか値すら入ってない状態です。 PHP5.1.6です。よろしくお願いします。

    • 締切済み
    • PHP
  • 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できないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • 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
  • MySQLで、INSERT文でエラー

    下記のスクリプトで、MySQLサーバーのテーブルの中身を見ようとしたら、 返り値が空でした(行数0) ( クエリの実行時間 0.0010 秒 ) と表示されます。 どこが間違ってるのでしょうか。 ////////////////////// // データベース登録 // ////////////////////// $con = mysql_connect("mysql020.******", "*****", "*****"); // リモートのMySQLデータベースサーバーに接続する mysql_select_db("LAA0471050-ideamemo"); // データベースサーバーに存在する(myPHPAdminで作成済みの)データベースを選択する $sql = "SET NAMES utf8"; mysql_query($sql, $con); $sql = "INSERT INTO ideamemo_table (color, title, contents, create) VALUES ('$color', '$title', '$contents', '$create');"; mysql_query($sql, $con); mysql_close($con); ?>

    • ベストアンサー
    • MySQL
  • MySQL INSERT文 エラー

    カラム名を指定してデータを挿入するのがうまくいきません。 テーブル(tb1)作成後、たとえば、 insert into tb1(number, name, age) values(A104, '渡辺', 23); と入力すると、 '> と出力されてしまいます。 何が間違っているんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MYSQLにINSERTできません。

    見よう見まねでやっている超初心者です。 恥を忍んで質問させて頂きます。 古いPHP(2003年ごろ)関連書籍に下記のような include.phpファイルがあるのですが、DB接続失敗、クエリ発行エラー等の エラー表示は出ないのですが(65行目位の、管理者パスワードチェック : _chkPass)でパスワードがMYSQLにINSERTできません。 PHPバージョンの違いなのでしょうか(私のはPHPV5 XAMPPです。) 色々試したりMYSQLの確認をしたのですが、どこがイケないのか、 どこをどう直したらいいのか全く分かりません。 このプログラムに不具合は無いのか?あったとしたらどう直したら動くようになるのか? わかる方どうかご教授の程よろしくお願い致します。 具体的にご教授頂けると大変助かります。 <?php putenv("TZ=JST-9"); define( "_DB_SERVER", "localhost"); define( "_DB_NAME", "cgiweb" ); define( "_DB_UID", "root" ); define( "_DB_PASS", "" ); //--------------------------------------------------------- // DB接続 : _dbConnect //--------------------------------------------------------- function _dbConnect(){ //DB接続 $_conn = mysql_connect( _DB_SERVER, _DB_UID, _DB_PASS) or die('DB接続失敗 = ' . mysql_error()); //DB選択 mysql_select_db( _DB_NAME, $_conn) or die('DB選択失敗 = ' . mysql_error()); return( $_conn ); } //--------------------------------------------------------- // DB切断 : _dbDisconnect //--------------------------------------------------------- function _dbDisconnect( $_conn ){ //DB切断 mysql_close($_conn); } //--------------------------------------------------------- // クエリ発行 : _query //--------------------------------------------------------- function _query( $_conn, $_query ){ $_result=mysql_query($_query,$_conn) or die('クエリ発行エラー = ' .mysql_error()); return( $_result ); } //--------------------------------------------------------- // FETCH実行 : _fetchArray //--------------------------------------------------------- function _fetchArray( $_result ){ $_row = mysql_fetch_array($_result,MYSQL_ASSOC); return( $_row ); } //--------------------------------------------------------- // 結果セット開放 : _freeResult //--------------------------------------------------------- function _freeResult($_result){ mysql_free_result($_result); } //--------------------------------------------------------- // 管理者パスワードチェック : _chkPass // 引数:コネクション // チェック対象パスワード // 戻値:_OK or _NG //--------------------------------------------------------- function _chkPass( $_conn, $_input_pass ){ $_err_str = ""; if( ! $_input_pass ){ //パスワード未設定なら入力画面を表示 $_err_str = "パスワードを入力してください"; } else{ //パスワードがあるなら店舗マスタの内容と比較 $_result = _query( $_conn, "SELECT tenpo_pass FROM tenpo_mst" ); $_row = _fetchArray( $_result ); if( $_row ){ //レコードがあればチェック if( $_input_pass != $_row['tenpo_pass'] ){ //認証NGなので、入力画面を再表示 $_err_str = "パスワードが誤っています"; } }else{ //レコードがなければ入力されたパスワードでレコード作成 $_sql = ""; $_sql .= "INSERT INTO tenpo_mst ("; $_sql .= " tenpo_name,"; $_sql .= " tenpo_pass,"; $_sql .= " zei_kbn,"; $_sql .= " zeiritsu,"; $_sql .= " zei_kirisute_kbn,"; $_sql .= " order_status"; $_sql .= " ) VALUES ("; $_sql .= " '',"; $_sql .= " '" . addslashes($_input_pass) . "',"; $_sql .= " 2,"; $_sql .= " 0,"; $_sql .= " 0,"; $_sql .= " 0"; $_sql .= " )"; _query( $_conn, $_sql ); } _freeResult( $_result ); } //入力画面表示の場合 if( $_err_str != "" ){ echo "<HTML>\n"; echo "<HEAD>\n"; echo "<TITLE>管理者認証</TITLE>\n"; echo "</HEAD>\n"; echo "<BODY>\n"; echo "<CENTER>\n"; echo "<FONT COLOR=RED SIZE=5>管理者認証</FONT>\n"; echo "<HR>\n"; echo "${_err_str}<BR><BR>\n"; echo "<FORM ACTION=\"mnt_menu.php\" METHOD=\"POST\">\n"; echo "<FONT COLOR=RED SIZE=2>※記号を除く半角小文字8文字以内</FONT><BR>\n"; echo "パスワード:<INPUT TYPE=\"password\" NAME=\"post_pass\" MAXLENGTH=8>\n"; echo "<INPUT TYPE=\"submit\" VALUE=\"送信\">\n"; echo "</FORM>\n"; echo "<HR>\n"; echo "</CENTER>\n"; echo "</BODY>\n"; echo "</HTML>\n"; _dbDisconnect($_conn); exit; } } ?> 以下省略しました。

    • ベストアンサー
    • PHP
  • MySQLへのINSERT

    JAVA Connection とPreparedStatement でMysqlへINSERT分を実行したいのですが、エラー が出力されます。 SELECT分だと正常に実行されるのですが。。。。どうしてでしょうか? ps = conn.prepareStatement(\" INSERT INTO test00 (data1) values (1)\")

    • ベストアンサー
    • Java
  • MYSQL insertについて

    MYSQLについて MYSQLで insert into syouhin values(3,'ブラックコーヒー',120) で実行するとうまく入力されません charsetもsjisでしてますし、なにがいけないのでしょうか??おしえてくださいお願いします。

    • ベストアンサー
    • MySQL
  • MySQL insertができない

    商品名とその値段を挿入しようとおもっているのですが、下記のようなエラーがでて先に進めずにいます。 Query failed: Unknown column 'item' in 'field list' <?php if($contact=mysql_connect("host","admin","root")){ echo "サーバに接続しました。<br>"; } mysql_select_db("watanabe", $contact); $query = 'INSERT INTO list(item,price) VALUES("りんご","100")'; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); if($result){ echo"追加に成功しました。"; }else{ echo"追加に失敗しました。"; } ?> ご回答願えますでしょうか?

    • ベストアンサー
    • PHP
  • MySQLで先頭にinsertしたい

    現在、MySQLでselectを行うと、追加した順序で表示が行われています。 そこで、新たにレコードを先頭にinsertしたいと思うのですが、可能でしょうか? 本来はorder byなどでソートすべきで、邪道であることは承知ですが、 もし可能な方法があれば教えていただきたいです。 よろしくお願いします。