• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysql_queryは最大いくつまで登録できるのでしょうか。)

mysql_queryで複数のレコードを登録する方法とエラーの解決法

このQ&Aのポイント
  • mysql_query関数を使用して複数のレコードを一度にデータベースに登録する方法について説明します。また、登録が失敗する場合のエラーの解決法も紹介します。
  • 登録するデータベースのテーブルの設計やSQL文の書き方に問題がある可能性があります。データベースのテーブルのカラムの数や型、値の形式を確認しましょう。また、SQL文の書き方も正しいか確認しましょう。
  • データベース接続の問題や???

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ちょっと質問内容から原因はつかめませんでしたので、 以下の方法で、なぜ登録できていないか確かめて見てください。 まずは生成したSQL文を表示してみてください。 そこで思い通りのSQLになっているか確認して下さい。 (セミコロンが足りない、データにセミコロン等が入ってしまっている等) そこでおかしなものがあればその部分を修正すれば大丈夫なはずです。 それでもわからなかった場合は、そのSQL文をコピーし phpMyAdminやコマンドプロンプト等を使用してmysqlに接続し、 そのコピーしたSQLを実行して下さい。 何かエラーメッセージは出ているのでしょうか? 出ていましたらそれを提示していただければ 解決の助けになると思います。

tomofriend
質問者

お礼

本当に親身になっていただけて感謝の心でいっぱいです。なんとか、解決しました。原因は、変数名に、eikyou という文字を使っていたためです。30近くある変数とカラムにひとつずつ登録していき、eikyou を付け加えたとたん、エラーとなりました。数の制限があるのかと思い、eikyou をはずして、別の変数をデータベースに登録させると、うまくいきましたので、eikyou ->ej へ変更し、一件落着です。でも、eikyou がなぜ悪かったのか、不明です。データベースの型もVarchar(200)で、10文字程度しかなかったのですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP/mySQLでインサートができません。

    PHPとmySQLを勉強中の初心者ですが、よろしくお願いします。 PHPで簡単なインサート文を作ってそれをmySQLに保存しようとしているのですが、以下のエラーが出てしまいます。 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource プログラムは以下の通りです。HOSTNAME,USERNAME,DBPWDは別のところで定義していますが、mysql_connect, mysql_select_dbではエラーにならないので、データベースの選択まではうまく行っていると思うのですが。 $conn = mysql_connect(HOSTNAME, USERNAME, DBPWD); if(!$conn){ die("Logon Failure to mysql Server."); } $db = mysql_select_db(DBNAME, $conn); if(!$db){ die("Cannot access to the DB"); } foreach($csv_ary as $a => $b) { $query = "INSERT INTO TEST field_a VALUES $a"; if (!mysql_query($query, $db)){ echo "更新失敗: SQL=$query<br>"; } } mysql_close($conn); field_aはvarchar(10)でPrimary_key, NOT NULLの設定です。 Foreachで展開した配列の値はちゃんと長さ10の文字列が入っています。 PHP 4.3.11は mySQL 4.0.27です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQL5.1で varchar(100)のものを varchar(

    MySQL5.1で varchar(100)のものを varchar(90)にする予定です。 (後ろの10バイトは無条件になくなっても構いません) 通常の手順ではalter tableを使います。 今回は、他の項目も変更(auto_incrementやキーの追加)するので 一度 mysqldumpでSQLを吐き出して、 CREATE文の以下を変更 varchar(100) → varchar(90) auto_incrementやキーの追加 そして、mysqlでリストアします。 この方法は、アリでしょうか? 他のデータベース(PostgreSQL, SQLServer, Oracle)でも使える手法でしょうか? 皆さんのvarchar(100) → varchar(90)する方法が知りたいです。

    • ベストアンサー
    • MySQL
  • PHP+mysql データ重複登録

    ◆PHPバージョン 5.3.3 ◆mysqlバージョン 4.1.22 ◆テーブル情報 `no` int(11) NOT NULL auto_increment, `name` text NOT NULL, `mail` text NOT NULL, `memo` text NOT NULL, `updating` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`no`) ENGINE=MyISAM DEFAULT CHARSET=utf8 ◆SQL (1)insert into test(name, mail, memo) values ('abc','abc@test.com','abc') (2)insert test set name='abc', mail='abc@test.com', memo='abc' ◆処理概要 $conn = mysql_connect(ホスト、ユーザ、パスワード); mysql_query("set names utf8"); $rs = mysql_select_db(DB名, $conn); $result = mysql_query(SQL, $conn); ◆登録情報 (1, 'abc', 'abc@test.com', 'abc', '2011-09-02 16:28:57'), (2, '', '', '', '2011-09-02 16:28:57'), 【問題】 上記SQL(1)、(2)どちらでDBに登録しても、登録情報のように同時に空データも同時に登録されてしまう 全く原因の検討がつかないので、何か手がかりがありましたらご教授頂けたらと思います。 どうぞよろしくお願いします。

    • ベストアンサー
    • MySQL
  • mysql_queryが動かなくて困っています

    こんにちは、Web上のphpのページを見ながら学習している者です。 早速躓いてしまっていまして、どなたか添削していただければと思います。 下のようなスクリプトを組んだのですが、接続は成功するのですが 問い合わせのほうがうまくいかず、クエリの送信に失敗しました。になります mysql_query文の各パラメーターはphpMyAdminの画面からカットアンドペーストしたもので、タイプミスや大文字小文字のミスは無いはずなのですが… どうかよろしくお願いします >><?php >>   $url = "11111.jp"; >>   $user = "+++++"; >>   $pass = "*****"; >>   $db = "dbname"; >>   // データベースへ接続("サーバ名","ユーザ名","接続用パスワード") >>   $link = mysql_connect($url,$user,$pass)or die("MySQLへの接続に失敗しました。"); >>   $sdb = mysql_select_db($db)or die("データベースの選択に失敗しました。"); >>   // 問合せ処理 >>   $query = "select 名称 from tablename where ID=1"; >>   $result = mysql_query($query)or die("クエリの送信に失敗しました。<br />SQL:".$sql);

    • ベストアンサー
    • PHP
  • PHP+MySQL on さくらサーバー

    さくらサーバーで、プレミアムプランで契約しています。 PHP4.3.10、MySQL 4.0.26で、以下のPHPファイルを埋め込んだphpファイルを実行すると、エラーが生じます。なんか、初歩的なことを勘違いしているのではないかと言う気がするのですが、何が問題なのでしょうか。 データベースのユーザー名は、xxx パスワードは、yyy データベース名は、xxx(一つのみ割り当て) Userというテーブルがあります。 <?php $conn = mysql_connect("mysql11.db.sakura.ne.jp","xxx","yyy"); mysql_select_db("xxx", $conn); $sql = 'SELECT * from User'; mysql_query($sql, $conn)); ?>

    • ベストアンサー
    • MySQL
  • php+mysql sql文実行について

    データベースに「日付」「文章」を登録し、今日の日付に対応した文章が表示される仕組み(正確には朝の5時に変更)を作りたいと考えております。 以前は日付をタイトルとしたtxtファイルを作成し、その中身を読み込ませる仕組みだったのですが、今回mysqlを使用して同様のものを作成できればと思い試行錯誤しております。 データベースは 「maxim」というテーブルの中に、 date   main 071018 (文章)  071019 (文章) 071020 (文章) 071021 (文章) のように格納してあります。 date:主キー、varchar(6)、not null main:text、not null 作成したスクリプトは以下の通りですが、これを実行すると「エラー」が表示されてしまいます。 $dateによる文字列の取得、DBへの接続までは、echo、or dieにて確認済、またsql文をphpMyadminから実行した場合($dateを071018に書き換えて)、こちらも正常に取得できたのですが。 $dateをsql文に記述する際の囲みの問題かとも思い、「''」や「()」や「[]」で囲ってもみたのですがだめでした。 どなたかお知恵を拝借できますでしょうか。 宜しくお願い致します。 *サーバー、mysqlはともに「ロリポップ」を使用しております。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>テスト</title> </head> <body> <?php $date=strftime("%y%m%d",time()-5*3600); $server="mysql**.***.jp"; $dbname="********"; $user="********"; $pass="*****"; $conn = mysql_connect($server,$user,$pass); $sql="SELECT main FROM maxim WHERE date = '$date'"; $res=mysql_query($sql,$conn) or die("エラー"); echo "<b>$res</b>"; mysql_close($conn); ?> </body> </html>

    • ベストアンサー
    • PHP
  • 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のクエリの質問です。

    最近phpmyadminを使い始めたmysqlの初心者です。 テーブルAにはフィールドC(int(10))とフィールドD(varchar(32))があります。 テーブルBにはフィールドE(int(10))とフィールドF(text)があります。 フィールドCとフィールドEは同じキーです。(申し訳ありません。正しい表現方法がわかりません。) テーブルAのレコードの中でフィールドDの値がXYZのものであるときのみ、フィールドCをフィールドEに入れたレコードをテーブルBに作りたいと思っています。この場合、どのようなクエリを書いたらよろしいでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 新着情報のような記事投稿をつくろうとしているのですが、POSTの受け渡し?やMySQLへのデータ登録がうまくいきません。

    やりたいこと 1、form.phpからview.phpへフォームでPOSTデータを送り、 2、view.phpでは、MySQLへの接続と、受け取ったPOSTデータを変数へ格納して、データベースへ登録する前に、プレビュー画面で確認する。 4、登録ボタンを押したら、「登録しました。」というメッセージを表示し、データベースへ登録する。 受け取ったPOSTデータをプレビュー画面にすることはできたのですが、その後の、「4」の部分が作れません。どうかアドバイスお願いいたします。 view.php ////////////////////////////////////////////////// $host = "localhost"; $conn = mysql_connect($host, "root", "root"); mysql_select_db("my_db", $conn); $date = $_POST['date']; $title = $_POST['title']; $text = $_POST['text']; $form = <<<EOM <form action="view.html" method="post"> <table> <tr> <td日付td><td>$date</td> </tr> <tr> <td>タイトル</td><td>$title</td> </tr> <tr> <td>本文</td><td>$text</td> </tr> <tr> <td><input type="submit" name="check" value="登録" /> <input type="button" name="back" value="戻る" /></td> </tr> </table></form> EOM; //ここにいろいろと書いて試してみました ----------------------------------------------- //試したこと1 $sql = "INSERT INTO topic_table(date, title, text,)VALUES('$date', '$title', '$text')"; mysql_query($sql, $conn) or die($form_a="登録できませんでした"); ($form_a="登録しました。"); ↑これだとview.phpを開いただけでデータベース登録されてしまいました。 ----------------------------------------------- 試したこと2 if($_POST['check'] == "登録"){ $sql = "INSERT INTO topic_table(date, title, text,)VALUES('$date', '$title', '$text')"; mysql_query($sql, $conn) or die($form_a="登録できませんでした"); ($form_a="登録しました。"); } ↑登録ボタンを押して、データベースに登録する、というのをif文で作ってみましたが失敗しました。(POSTデータではなくただの空白しかデータベースには登録されませんでした。)

    • ベストアンサー
    • PHP
  • mysql_select_db()関数に関して・・・。MySQLでテーブルの作成ができません。

    こんにちは、さくらインターネットのレンタルサーバでMySQLとphpを連動させたサイトを作っているのですが、初歩的なことでつまずいてしまい困っています。 まず、フォームで入力させたデータをPOSTで受け取り、その受け取ったデータをテーブル名として、データベース上にテーブルをつくりたいのですが、エラー文が表示されるだけでできません。 データベース自体への接続はできているようなのですが、phpMyAdminで見ても全くできていません。SQL文をphpMyAdminで実行するときちんと正常にテーブルができますので、そもそもデータベースが使用できないとか、もしくはSQL文の間違いでもなさそうです。 $t1 = $_POST['test1']; $t2 = $_POST['test2']; echo"{$t1}を受け取りました<br>"; $link = mysql_connect('mysql**.db.sakura.ne.jp', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('接続に成功しました。<br>'); //1.さくらインターネット内にあるデータベースの選択 $db_name = "自分のデータベース名"; $selectDB = mysql_select_db($db_name,$link) or die("接続できません。"); //2.データベース内にテーブルを作成。 echo"{$t1}がテーブル名になります。<br>"; //3.テーブル作成用SQL文 $str_sql = "CREATE TABLE {$t1}" . "(" . "{$t2} INT(7) NOT NULL," . ");"; //4.上のSQL文を実行してテーブルを作る。 mysql_query($str_sql,$selectDB); echo"データベース内にテーブル「{$t1}」を作成しました。<br>"; //データベースへの接続を切断 $close_flag = mysql_close($link); if ($close_flag){ print('切断しました。<br>'); } 実行結果:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resourceとなってテーブルは作成されず。 自分でも調べて見たところ、mysql_connect()での接続はちゃんとできているようなのですが、その次のmysql_select_db()関数がうまく働いていないようです。 つまりデータベースの選択ができていないので当然エラーとなるようです。 もう何日も悩んでいます。わかる方がいましたらどうぞよろしくお願いします。

    • ベストアンサー
    • PHP