• 締切済み

エラーについて(更新)

Txtファイルには 1,A ~ 10,A のデータが入ってます。 データベースはmysqlで mysqlにはフィールドは ID NAMEで 1  1 ~ 9  1 のデータ9つが入ってます。 Txtファイルの10番目のデータを更新させると データベースにそれに対応したコードがないため エラーが出るはずなのですが、 エラーの形が次のようになります。 データが登録されました。データが登録されました。アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません。 アクティブなトランザクションがありません 何故なのでしょうか? 自分ではtxtファイルの10番目のデータを更新するときにだけエラーがでると考えているのですがそのように 動作してくれません。何故そのように動作しないのでしょうか?また、エラーがでているにもかかわらず 更新処理は全て正常に動作しています。 コードについても載せたいのですが 文字数制限で載せることができませんので 回答していただいた後に、補足で載せさせて頂きたい と思います。

みんなの回答

回答No.1

お世話になります。 何がやりたいのか、イマイチよくわかりません。 でも > アクティブなトランザクションがありません。 って出るって事は、推測ですが トランザクション管理が間違っているんでしょうね。

sea_clear
質問者

お礼

解決しました。 ありがとうございました。

関連するQ&A

  • PHPとMySQLを使ったフォームを作っていますが、うまくできないこと

    PHPとMySQLを使ったフォームを作っていますが、うまくできないことがあり書き込みさせていただきます。 わかる方、ご助力願えれば幸いです。 フォームから、送信されたデータを受け取って、MySQLに登録する際に、フォーム内に空欄があると、うまくMySQLのデータベースに追加ができなかったり、変更ができなかったりします。 コードを簡単に書くと… <?php //フォームからデータを取得 $name = $_POST['name']; $address = $_POST['address']; $age = $_POST['age']; //データベース接続処理 $db = mysql_connect("localhost","user","password"); mysql_select_db("db_name",$db); $rs = mysql_query("select * from tablename order by my_id desc",$db); //データベースへの登録 $rs = mysql_query("INSERT INTO tablename(name,address,age)VALUES('$name','$address','$age')",$db); ?> このような感じになります。 フォームには、名前、住所、年齢を入力しているわけですが、年齢が必須でないため、空欄として送られてくることもあります。 年齢に数値が入っている場合は、うまく登録されますが、空欄であった場合、特にエラーが出るわけでもなく、単に「登録されない」という状況がおきます。 データベースのテーブルのフィールドでは、ageは int(11)でNULLはYes、defaultはNULLになっております。 自分なりに調べてみたつもりですが、知りたい情報に出合うことができませんでした。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • データの追加、更新について

    現在、PHPとMySQLにて、会員登録のシステムを構築しています。 初歩的なことかとは存じますが、以下のような場合どのような形にするのが良いのかアドバイスいただけますでしょうか。 データベースのテーブルのフィールドに、 メールアドレス登録用のフィールドがあり、 デフォルトはNULLとしています。 メールアドレス自体は任意の入力項目となっており、 空の場合もあります。 入力が空の場合は、データ追加あるは更新の際、 メールアドレスのフィールドには空文字を入れるのが良いのでしょうか。あるいは「NULL」としておく方が良いのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • マスタの更新について

    お世話になります。 マスタを登録・更新するプログラムを作成しています。 入力画面には以下の項目を配置しています。  ・商品コード  ・商品名  ・備考 値を格納するデータベースのテーブルのフィールドは以下の通りです。  ・商品コード  ・商品名  ・備考  ・削除フラグ  ・登録日  ・登録者  ・更新日  ・更新者 ※主キーは商品コードです。 別画面でこのマスタ内容を選択してデータを作成しています。その為、現在は整合性を取るために、マスタを更新する時は商品コードを変更できないようにして更新しています。 ここで皆さんに質問があります。 現在のテーブルにはオートナンバー型のようなフィールドを作成していません。 一般的にこのようなマスタを作成する際はオートナンバー型のようなフィールドを作成するものなのでしょうか。またどのように対応するのが望ましいのでしょうか。 くだらない内容で大変申し訳ありませんが宜しくお願いします。 私の説明で皆さんに伝える事ができたか心配ですがどうぞ、アドバイス等をいただけませんでしょうか。 何卒、宜しくお願いします。

  • PHPでMySQLデータを更新するとエラー

    PHPで作成したプログラムでMySQLにデータを登録しています。 新規にデータの追加はできるのですが、更新するとエラーになります。 スクリプトは if (isset($_POST["submit_upd"])){ $no = key($_POST[submit_upd]); $name = htmlspecialchars($_POST["name"][$no], ENT_QUOTES); $division = htmlspecialchars($_POST["division"][$no], ENT_QUOTES); $email = htmlspecialchars($_POST["email"][$no], ENT_QUOTES); $tel = htmlspecialchars($_POST["tel"][$no], ENT_QUOTES); $group = htmlspecialchars($_POST["group"][$no], ENT_QUOTES); $sql = "UPDATE user SET name='$name',division='$division',email='$email',tel='$tel',group='$group' WHERE no=$no"; $mysql->query($sql); $error = "{$no}番のデータを変更しました"; エラーは(例:4番のデータのグループを3番に変更) 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='3' WHERE no=4' at line 1 となっています。 以前同じプログラムで下記の質問をして、こちらは解決したのですが 結合していたり、whileループの設定などのせいでgroupの値を上手く得られないのか?と悩んでいます。 http://okwave.jp/qa3972723.html クラスも上記に記載してあります。 まわりに聞ける人が全くおらず困っています。 どうかお力を貸していただければと思いますので よろしくお願いします。

    • ベストアンサー
    • MySQL
  • データ登録時、重複エラーを避けたい

    MYSQLのデータベースの、IDという項目が主キーのTESTというテーブルに、データをに登録する際、 既に主キーが同じデータがない場合に、という条件をつけたいのですが、 下のように書くと、エラーになってしまいます。 INSERT INTO TEST (ID, NAME) VALUES ('a', 'abc') WHERE NOT EXISTS (SELECT * FROM TEST WHERE ID = 'a'); どうしたらよいか教えてください。

    • ベストアンサー
    • 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できないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • ACCESS更新クエリで型変換エラー

    ACCESSで更新クエリを作成して実行したら 「…個のフィールドで型変換エラーが発生したためレコードを更新できませんでした。」 となってしまいます。 「医薬品コード(-)」というフィールドに「医薬品コード」フィールドの文字から( )で囲まれた部分を省いた文字を更新するクエリを作りたいのです。 更新クエリのレコードの更新セルに入力しているのは Left([医薬品コード],InStr([医薬品コード],"(")-1) です。 更新するフィールドの設定は 値要求:いいえ、空文字列の許可:はい、インデックス:いいえ、Unicode圧縮:いいえ 型変換エラーの原因はなんでしょうか?

  • エラーチェック、ファイルに特定の文字列があったらエラーの処理を出したい。

    たびたび質問すいません。 エラーチェックについて質問です。 sub err_check{ $data="data.txt"; open(LOG,"$data"); @readerlist = <LOG>; close(LOG); foreach $list (@readerlist) { $newlist = $list; $newlist =~ s/\n//g; $newlist =~ s/\r//g; if($newlist eq $mail) {&err("$mail は既に登録済みです");} } } という記述は動作しました。この逆、$mailは登録されていませんというエラー処理を吐き出すには、($newlist eq $mail)を($newlist ne $mail)とやればできるのかと思いましたがうまくいきませんでした。 data.txtの中身はメールアドレスですが、アドレスごとに改行コード↑が入ります。data.txtのファイルの中身を検索して、$mailがなかったら登録してません。と はきだす処理の記述はどのようにしたらいいのでしょうか?

    • ベストアンサー
    • Perl
  • JavaからMySQL-DBへのデータ更新について

    JAVA から JDBC を経由して MySQL のデータを更新する方法 について質問があります。 MySQL使用者の初心者です。 ここで、データベース(sample_table)は以下のようになっているものとします。 | num | name | | 1  | 太郎 | | 2  | 次郎 | | 3  | 三郎 | num・・・int型 name・・・・varchar型 例えば num = 1 の name を変えたい場合 String qry = "UPDATE sample_table SET name = '花子' WHERE num = '1'"; st.executeUpdate(qry); 等のようにする事は分かっています。 しかし Javaのプログラムにおいて事前に String str = "花子"; のように指定しておいて String qry = "UPDATE sample_table SET name = " + str + "WHERE number = '1'"; st.executeUpdate(qry); とすることが出来ません。 (データベースがvarchar型で、指定しているのがString型だからでしょうか???) やはり Javaのプログラムで事前に指定したものを MySQLのデータベースに更新する事はできないのでしょうか? あるいは、構文のミスで(エラーには構文ミスと出てきます) 何か他の方法があるのでしょうか? 初心者なもので、どうすれば解決できるのか非常に困っております。 ご存知の方いらっしゃいましたら、御指導・御教授願います。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • MySQLデータベースにcsvファイルインポートで、エラー

    csvファイルインポートで、エラー phpMyAdminからMySQLデータベースに、csvファイルのインポートを試みたところ、 「CSV 入力のフィールド数が不正です(行: 17)」と表示され、うまくいきません。 データベースの中を確認すると、60レコードのうち、15レコードまでは正常にインポートされています。 元のcsvファイルを確認しても、mysql側とフィールド数は一致しており、問題はないように見受けられました。 phpMyadminのバージョンが、2.6.1-pl3から 2.10.0.2に変わった後、上記の問題が発生するようになりました。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL