• ベストアンサー
  • 困ってます

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"追加に失敗しました。"; } ?> ご回答願えますでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数732
  • ありがとう数0

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

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

こんにちは。 開発するに当たって多少のエラー内容はわかるようにしておいた方が 今後、開発を進めていく際に動かないことに対する手がかりになると思います。 今回のエラーはitemというカラムが無いよって言ってます。 listテーブルにitemというカラムが存在するかチェックして下さい。 DESC list; でテーブルの構成が見れます。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ファイルを分けたデータベースのINSERTができない。

    こんばんわ毎度毎度、質問続きで恐縮です。現在、ファイルをわけて、DBに商品登録をする、というスクリプトを作っています。トップ画面の商品入力フォームから商品登録の確認画面まではいけるのですが、 その、確認画面で登録ができずに悩んでいます。 下のスクリプトは、入力フォームで商品名と値段が入力されたとき 追加ボタンを押し登録をするスクリプトにしようと思い作成しました。 ただ、登録ボタンを押すと、「Query failed: 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 1」という構文誤りのエラーが出てしまうのです。 また、入力フォームからの商品や値段の受け渡しはPOSTでしようと思いました。 ご回答願えますでしょうか? //商品登録部分 $submit = $_POST["submit"]; $_item = $_POST["item"]; $price = $_POST["price"]; if($submit == "追加"){ $item = $_POST["item"]; $price = $_POST["price"]; if($contact=mysql_connect("host","admin","root")){ echo "<center><strong>商品登録表示</strong></center><br>"; mysql_select_db("test", $contact); $query = "INSERT INTO shoppingtable (item, price) VALUES ('".$item."',".$price.")"; $query2 = 'SET NAMES sjis'; mysql_query( $query2 ); $result = mysql_query($query) or die('Query failed: ' . mysql_error()); } if($submit){ header("Location:shoppingformCompletion.php"); } } //ここまで

    • ベストアンサー
    • PHP
  • INSERTした時のデータベース等の表示がおかしい

    現在phpmyadminを使用して、ファイルを分けた状態で入力フォームで商品名と値段を入力、確認画面(追加登録)の追加登録としたいのですが, 追加登録するファイルでINSERTしデータべースやselect文で表示したIEをみると商品名には何も表示がなく値段にはかならず0が表示されてしまいます。 これは入力フォームからの商品名や値段がうけわたされていないのでしょうか?それとも、INSERT文になにか誤りがあるのでしょうか? //追加登録 $submit = $_POST["submit"]; $item = $_POST["item"]; $price = $_POST["price"]; if($submit == "追加"){ $item = $_POST["item"]; $price = $_POST["price"];      $ITEM = $_POST["ITEM"];     $PRICE = $_POST["PRICE"]; header("Location:shoppingformCompletion.php"); if($contact=mysql_connect("host","admin","root")){ echo "<center><strong>商品登録をしました。</strong></center><br>"; mysql_select_db("watanabe", $contact); $query = "INSERT INTO shoppingtable (item, price) VALUES (\"$item\",\"$price\")"; $query2 = 'SET NAMES sjis'; mysql_query( $query2 ); } } <form method="post" action="shoppingformConfirmation.php" > <center><p><input type="submit" name="submit" value= "追加"></p></center> <center><input type="submit" name="delete" value="削除"></center> </form>'; //ここまで

    • ベストアンサー
    • PHP
  • 入力フォームからデータベースにINSERTできない。

    こんにちわ。今までSQL文で直接DBに商品名や価格などを登録していたのですが、今度は入力フォームから商品名や価格などを登録しようと思いスクリプトを組んでみたのですが、「Query failed: Column count doesn't match value count at row 1」という エラーが出てしまい悩んでいます。 <html> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <body> <?php $item = $_POST["item"]; $price = $_POST["price"]; $submit = $_POST["submit"]; //ショッピング登録フォーム echo ' <form method="post" action="shoppingform.php" > <center><br>商品名:<input type="text" size="30" maxlength="60" name="item"></br></center> <center><br>値段:<input type="text" size="30" maxlength="60" name="price"></br></center> <center><input type="submit" name="submit" value="登録"></center> </form> '; if($submit == "登録"){ $item = $_POST["item"]; $price = $_POST["price"]; if($contact=mysql_connect("host","admin","root")){ echo "サーバに接続ができました。<br>"; mysql_select_db("test", $contact); $query = 'INSERT INTO shoppingtable VALUES($item,$price)'; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); } お力をお貸し願えないでしょうか?

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

    PHP+MySQLをやり始めて、テーブルのUPDATE(更新)ができなくてこまっています。 <?php if($contact=mysql_connect("host","admin","test")){ echo "サーバに接続しました"; } mysql_select_db("databesetest", $contact); $query = "UPDATE list SET name = color WHERE id = 2"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); if($result){ echo"更新に成功しました"; }else{ echo"更新に失敗しました"; } ?> とすると Query failed: 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 ' SET name = color WHERE id = 2' at line 1 というエラーが出るのです。 シングルコーテーションがダブルコーテーションの問題のような気がしたので、いろいろと変更してみたのですが。できませんでした。 お教え願えませんでしょうか?

    • ベストアンサー
    • 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できません。

    見よう見まねでやっている超初心者です。 恥を忍んで質問させて頂きます。 古い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
  • データベースと一致したときの表示

    こんにちわ。今、データベースにある商品を物理削除するとき、データべースに登録してある商品名と一致しない場合に「一致する商品名がありません」と表示ができるようにしたいのが、なにか良いSQL文などはないでしょうか?例えば「なし」という入力をしたとき「なし」が登録されていないので「削除できませんでした」、というようにしたいと考えています。 //削除フォーム確認画面 <?php $submit = $_POST["submit"]; $delete = $_POST["delete"]; $item = $_POST["item"]; $price = $_POST["price"]; if($submit == "削除"){ $item = $_POST["item"]; $delete = $_POST["delete"]; }elseif($_POST["item"] == "" ){ header("Location:shoppingformConfirmationdeletefalse.php"); //ここから }elseif(if($contact=mysql_connect("localhost","root","")) { $query = 'SET NAMES sjis'; mysql_query($query ); mysql_select_db("watanabe", $contact); $query ="SELECT item, if(instr(item,\"$item\") > 0, '入力された商品名に一致する対象がない為、削除できません') FROM shoppingtable"; $result = mysql_query($query) or die('Query failed: ' . mysql_error());{ { } } //ここまで ?> とやってみたのですが、うまくきませんでした。 もしくは、この画面で削除する登録商品がない場合、ヘッダーなどで 遷移し 「一致する商品がないので削除できませんでした」というような感じ にしようかとも考えています。

    • ベストアンサー
    • 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
  • PHPとMySQLで文字化けします

    <?php $con=mysql_connect("localhost","oxwar2","chono3"); $db=mysql_select_db("oxwar2",$con); $query="insert into japan(id,title,price)values(1,'絵本',1000)"; $result=mysql_query($query,$con); if($result){ print "OK"; } ?> として、実行すると上手くいきますが、phpMyadminで見ますと、日本語の部分だけが文字化けしております。 これを直すにはどうしたらよいのでしょうか。 文字コードはUTF8で作りました。色々試しても同じです。 どのようにしたらよいのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP+MySQLで文字化けします

    PHPでMySQLに接続して以下のように テーブルの作成・そのテーブルにInsertをすると文字化けします。 PHPサーバーの文字コードはEUC-JP、MySQLの文字コードはlatin1です。 PHPのバージョンは5.04でMySQLのバージョンは4.1.20です。 無料レンタルサーバーなので詳細な設定は変更できません。 <?php // データベースに接続し、選択する mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); $link = mysql_connect('localhost',"user","password") or die('Could not connect: ' . mysql_error()); echo 'Connected successfully'; mysql_select_db('user') or die('Could not select database'); mysql_query("SET NAMES UTF-8",$link); // SQL クエリを実行する $name = 'test'; $query = "CREATE TABLE IF NOT EXISTS `$name` ( `id` varchar(50) primary key, `name` varchar(50), `pw` varchar(50) );"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $query = "INSERT INTO $name (id, name) VALUES('test', 'テスト');"; $mojicode = mb_detect_encoding($query); $query = mb_convert_encoding($query, "UTF-8", "$mojicode"); $result = mysql_query($query) or die('Query failed: ' . mysql_error()); // HTML に結果を出力する echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // 結果セットを開放する mysql_free_result($result); // 接続を閉じる mysql_close($link); ?> まだまだPHP、MySQL共に技術が未熟なため 説明不足な部分が多々あるかと思いますがご教授お願いします。

    • ベストアンサー
    • PHP