• 締切済み

The table tbl_name is full エラーが出てしまうので・・(MySQL)

The table tbl_name is full エラーが出てしまうので・・(MySQL)ということで下記のように対応したのですが、今度は画面自体が動かなくなり困っております。 どうかアドバイスをいただけないでしょうか。 ちなみに上記内容はperlで動作させてネット上で表示させる為に行っている流れの中での話です。(補足が遅れてすいません。) ※参照プログラム $sth = $db->prepare("SET SQL_BIG_TABLES = 1") or &ErrorDB("エラーコード:$ERRDBMSG"); $sth->execute or &ErrorDB("エラーコード:$ERRDBMSG")

  • aeic
  • お礼率10% (60/582)

みんなの回答

  • yuji
  • ベストアンサー率37% (64/169)
回答No.1

全く自信がありませんが、SQLを実行したいのでしょうか? だとしたら、 SET SQL_BIG_TABLES = 1 なんて構文は存在しません。 もし書くとすれば UPDATE table名 SET カラム名 = 値 です。

関連するQ&A

  • PerlでMySQLのテーブル一覧取得

    PerlでMySQLのデータベース内のテーブル一覧を取得することはできますか? 自分で以下の様なサブルーチンを作りましたが、返り値に何も入っていませんでした。 コマンドラインでもshow tables;で確認したのでテーブルは確実に存在します。 接続も showでfetchrow_arrayなどは使えないのでしょうか? またselect文でテーブル一覧を取得する方法がありましょうか? Error: failed to connect to DB.とは出てこないので、接続も成功しています。 sub mysql_tablesGet{ my @data=@_; my $db_id = $data[0]; my $db_password = $data[1]; my $dbh = DBI->connect("dbi:mysql:dbname=".$ftp_id.";host=$mysql_host", $db_id,$db_password) or die "$!\n Error: failed to connect to DB.\n"; my $sth = $dbh->prepare("show tables;"); $sth->execute; my @response; my $i=0; while(my @var = $sth->fetchrow_array){ my ($table_name) = $var[0]; $response[$i] = $table_name; $i++; } $dbh->disconnect; return @response; } MySQLのログはこんなのが出ています。 130406 17:11:44 70 Connect test2@192.168.11.22 on test2 70 Query set autocommit=1 特にエラーは出ていないので、show tables;は成功していると思います。

    • ベストアンサー
    • Perl
  • perlからmysqlに接続できない

    #! c:/perl/bin/perl  use DBI; $user = 'root'; $passwd = 'パスワード'; $db = DBI->connect('DBI:mysql:db1:localhost', $user, $passwd); $sth = $db->prepare("INSERT INTO bunrui VALUES (1,'1st','memo')"); $sth->execute; $sth->finish; $db->disconnect; perlからmysql二接続するためDBIをインストールして、上のようなサンプルコードを実行してみたのですが Internal Server Error になってしまいます。どこかコードが違っているのでしょうか?

    • ベストアンサー
    • Perl
  • MySQLのトランザクションについて

    初めて質問します。 今、PerlのDBIを使ってMySQLのトランザクション処理にチャレンジしています。 ところが、rollback処理がうまくできません。 具体的には、 table2 がある状態で下のプログラムを動かすと、 エラーの表示が出るのに、 table1 は作成されました。 何らかのエラーがあれば、どちらも作成されないようにしたいです。 ======================================================= my %sql; $sql{db_name} = "database"; $sql{host} = "localhost"; $sql{user_name} = "user_name"; $sql{password} = "password"; use DBI; my $dbh = DBI->connect('DBI:mysql:'.$sql{db_name}.':'.$sql{host}, $sql{user_name}, $sql{password} ,{RaiseError => 1, PrintError => 0, AutoCommit => 0 }) || &Err(); my $sth; my $re; eval { my $sql_string1 = "create table table1(`id` int);"; my $sql_string2 = "create table table2(`id` int);"; $sth = $dbh->prepare($sql_string1); $re = $sth->execute; $sth = $dbh->prepare($sql_string2); $re = $sth->execute; }; if ($@) { $tag="Err:".$@."\n"; $sth = $dbh->rollback; }else{ $sth = $dbh->commit; } $sth->finish; $dbh->disconnect; ======================================================= 検索して、いろいろいじっても解決しませんでした。 どうかよろしくお願いします。

    • ベストアンサー
    • Perl
  • 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 最大値 取得 

    mysqlのデータベースから、列の最大値を取り出したいのですが、 以下のように書いているのですが、取得される値が1しか返ってこないです。 間違っているところはあるでしょうか? perlで書いています。 my $dbh = DBI->connect("DBI:mysql:host=${db_host};database=${db_name}", $db_user, $db_pass); my $sth = $dbh->prepare("SELECT MAX(列名) FROM テーブル名"); my $rv = $sth->execute(); print "$rv";

    • ベストアンサー
    • MySQL
  • PDOでMYSQL

    WHERE区の値をbindValueしているのですが、結果が取得できません。 ちなみにエラーになるわけでも文字化けを起こすわけでもありません。 $name = '太郎'; $sql = 'SELECT * FROM table WHERE name = :name; $sth = $dbh->prepare($sql); $sth->bindValue(':name', $name, PDO::PARAM_STR); $sth->execute(); $result = $sth->fetchAll(); print_r($result); いろいろ試してたところ、日本語だと結果を取得しないようで SQLデータの「太郎」となっていた箇所を「tarou」に変更し 変数の部分だけ変更したところ結果を取得できました。 $name = 'tarou; 基本の構文は合っていると思うのですが単純に日本語の指定が できないのでしょうか? PHPとMYSQLは全てUTF-8でバージョンは下記の通りです。 PHP:5.3.8 MYSQL:Client API version mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $ PDO: PDO drivers mysql, odbc, sqlite, sqlite2 Client API version mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $

    • ベストアンサー
    • PHP
  • データベース接続エラー

    質問させて頂きます。 環境はWin98SE ACTIVEPERLです。 mysql4.0です。 次のコードなんですか、 DB接続の部分とSQL実行の部分のエラー処理を消すと正常に動作します。 Perlの場合、どのようにエラー処理を記入したらいいのでしょうか? [コード] #!c:\perl\bin\perl.exe # DBI利用宣言 use DBI; print "Content-type: text/html\n\n"; print "<html><body>\n"; # MySQLに接続 $db=DBI->connect('DBI:mysql:test:localhost','',''); if(!$db){  print "MySQL接続エラー\n";  exit; } # ステートメントハンドルの作成:SQL文の指定 $sth = $db->prepare("select * from test_t"); # SQL実行 if(!$sth->execute()){  print "SQL実行エラー\n";  exit; } # 検索結果を表示 while (@rec = $sth->fetchrow_array()) {  print "id=" . $rec[0] . "\n";  print "name=" . $rec[1] . "\n";  print "<BR>\n"; } # ステートメントハンドルクリア $sth->finish();

    • ベストアンサー
    • Perl
  • DBの検索

    #!C:\Perl\bin\perl use DBI; $shouhinmei="手袋"; $db=DBI->connect("DBI:mysql:example_DB:localhost","user","password",{RaiseError => 0,PrintError => 1}); if(!$db){ print "接続は失敗です\n"; exit; } $sql="select * from shouhin_tbl"; $sql.="where shouhinmei='" . $shouhinmei . "'"; $sth=$db->prepare($sql); if(!$sth->execute){ print "SQLの失敗です\n"; exit; } *********************************** *********************************** $sth->finish; $db->disconnect; この***で囲まれた部分に、次のような処理を行いたいのですが、どのように書いたらいいのでしょうか。 『selectのSQLが成功したとき、DBのshouhinmeiフィールドに「手袋」がすでにあるならば、そのshouhinmei_idをブラウザに表示させ、』 shouhinmeiフィールドに「手袋」がなければ、 $sql="insert into shouhin_tbl(shouhinmei)"; $sql.="values('" . $shouhinmei . "')"; として追加させたいのですが、『』はどう書いたらいいか教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • MySQLのDB

    現在MySQLのDBを使いWeb上で情報を検索できる物を作っています。外の時に県名を入れてもらいその県名に当てはまる物を抽出するというものをやりたいのですが、どうしてもDBの所で止まってしまいます。 どうかおしえていただけないでしょう?下記参照 --参照-- my $num; my $str1SQL; $str1SQL=qq{SELECT kyu16 }; $str1SQL=$str1SQL.qq{FROM kyu_table }; if($ADDR1 eq "茨城県"){ # 場所(県) $STRSQL=$str1SQL; $STRSQL=$STRSQL.qq{WHERE kyu16 LIKE "%$ADDR1%" }; } if ($DEBUG_FLG eq '1') {print "STRSQL=$STRSQL<BR>\n";} # debug $sth = $Com::db->prepare($STRSQL) or &Com::ErrorDB("<BR><FONT COLOR=\"#FF0000\" SIZE=+1><B>エラーコード:検索04<br>$ERRDBMSG</B></FONT><BR>"); $sth->execute or &Com::ErrorDB("<BR><FONT COLOR=\"#FF0000\" SIZE=+1><B>エラーコード:検索05<br>$ERRDBMSG</B></FONT><BR>"); $num = $sth->rows; if ($DEBUG_FLG eq '1') {print "num=$num<BR>\n";} # debug

    • 締切済み
    • CGI
  • MYSQL 4.1 の余計なエスケープ処理

    おはようございます。PERL 5.8.5 からMYSQL4.1 サーバーへのデータINSERT 時の文字変換処理について教えてください。 MYSQL 4.1 の文字コードは次の通りです。 SHOW VARIABLES LIKE 'character?_set?_%'; の結果 character_set_client :binary character_set_connection:binary character_set_database:utf8 character_set_results:binary character_set_server:utf8 character_set_system:utf8 MYSQL 4.1 サーバーが上記のような状態で、PERL で次の処理をします。なお、PERL ソース自体はEUC で書かれています。 #!/usr/bin/perl use Jcode; use DBI; $string = "あああ"; Jcode::convert( ?$string, 'utf8', 'euc' ); $dbh = DBI->connect( 'DBI:mysql:DB名:ホスト名:3306', 'ユーザー名', 'パスワード' ,{AutoCommit => 0} ); $sth = $dbh->prepare( "set names utf8" ); $sth->execute; $sth->finish; $sth = $dbh->prepare( "insert into test values( ? )" ); $sth->bind_param( 1, $string ); $sth->execute; $sth->finish; $dbh->commit; $dbh->disconnect; 上記のソースを実行すると、MYSQL 4.1 サーバーには [あ?あ?あ] のような、余計なエスケープが掛かった状態で文字がINSERT されているのです。 私としては、set names utf8 で、MYSQL 4.1 サーバーとクライアントで同様の文字コードを使うようにしているので、MYSQL 4.1 における余計な文字コード変換はないものと思っています。余計な文字コード変換がないにもかかわらずエスケープ文字が入る理由が分かりません。 この現象についてお分かりの方がいらっしゃいましたら教えて頂きたく思います。なお、ネットでも調べたのですが、どの方も未解決でしたので質問さえて頂きました。 お願いします。