• 締切済み

サーバー上でのみinsertできないのはなぜ?

ロリポップサーバーでMYSQLを使用しております。 オリジナルのブログのようなものを設計し、投稿画面から投稿できるようにしたのですが。 ローカルで問題なくinsertできたテーブルが、サーバー上でinsertしたところentry_idのみが増えその他は空白になります。 不思議なことに同じロリポップでも別のアカウントで取得したサーバーでは問題なくinsertでき、記事の記入ができます。 phpmyadminの設定がおかしいのでしょうか。 同じような症状の方おられれば対処法教えてください。

  • MySQL
  • 回答数2
  • ありがとう数0

みんなの回答

  • edge8040
  • ベストアンサー率46% (7/15)
回答No.2

サーバー上でinsertする際、 entry_id以外の値を全て「半角英数字」にしたら反映されませんか? もし反映される様なら、ローカル環境とサーバ環境で、 PHP・MySQLのデフォルトの文字エンコードが違うのではないでしょうか。 ・ローカル環境のPHPの文字エンコード ・ローカル環境のMySQLの文字エンコード ・サーバー上のPHPの文字エンコード ・サーバー上のMySQLの文字エンコード ここら辺を確認してみると良いかもしれません。 > ロリポップでも別のアカウントで取得したサーバー この「別のアカウント」というのは、いつ頃取得されたものですか? それぞれのアカウントの契約時期が異なる場合、PHPのバージョンが異なり、 デフォルトの文字エンコードも異なるかもしれません。 ※現在、Lolipopで新規契約するとPHPのバージョンは5ですが、  昨年以前では、バージョン4でした。  http://lolipop.jp/?mode=mainte0810 「entry_id以外の値が入らない」という考え方から思考を変えて、 「なぜentry_idだけ値が入るのか」という考え方に変えると、 上記の様な検討が行えます。

回答No.1

>サーバー上でinsertしたところentry_idのみが増えその他は空白になります。 「その他」とは、char、varchar、textなどの文字のデータ型ということですか? MySQLのバージョン、使用している文字コードなどが提示されなければ、誰も適切なアドバイスはできません。 >オリジナルのブログのようなものを設計し、投稿画面から投稿できるようにした >phpmyadminの設定がおかしいのでしょうか。 insertは、具体的にどんな方法で行っているのでしょうか? phpMyAdminは、データの確認で使っているということでしょうか? それぞれの環境で、SQLを入力できる状態で、 show variables like '%char%' show variables like '%coll%' 二つのshowコマンドの結果を、提示してください。

関連するQ&A

  • レンタルサーバーについて質問です

    いつもお世話になっております。 ロリポップやさくらサーバー、XserverはMySQLのphpMyAdminは使えますが レンタルサーバーでMySQLのphpMyAdminが使えない種類のサーバーはあるのでしょうか? それとも基本的にはどのサーバーもphpMyAdminは使えるものなのでしょうか? ご回答のほど何卒よろしくお願いいたします。

  • PHPMyAdminを使ってインサートすると・・。

    最近MySQL5.0.22を使い始めました。 PHPMyAdminを使って手入力でテーブルにデータをインサートしようとすると、#1292のエラーメッセージが出ます。 日付やINTのカラムにデータを入れずにインサートしようとするとこのエラーが出ます。 以前MySQL4.0を使っていた時にはこういった現象はなかったのですが、どのように回避すれば良いのでしょうか?

    • ベストアンサー
    • MySQL
  • (レンタルサーバ)大量データで500エラー

    初めて投稿させていただきます。 現在、勉強もかねてロリポップというレンタルサーバーで PHPのプログラムを作成しております。 プログラムの概要は、以下の通りです。 1)CSVファイルを[テーブルA(MySQL)]へinsert。 2)[テーブルA(MySQL)]から対象レコードをselectし、 処理1を実行した結果を[テーブルB]へinsert。 3)[テーブルA]と[テーブルB]と結合したテーブルから対象レコードをselectし、処理2を実行した結果を[テーブルC]へinsert。 上記プログラムを実行する際に、以下の事象が発生し、困っております。 ・CSVファイルの内容が300行だと正常に処理が終了する。 ・CSVファイルの内容が400行だと、「500 internal server error」が発生する。 実行環境は以下の通りです。 ・ロリポップサーバーのロリポプラン (ディスク容量:50GB) 「500 internal server error」について検索すると「パーミッションの設定」が関係するようなので 推奨値である「600」やデフォルトである「644」の両方で実行いたしましたが どちらも同じ結果でした。 また、try~catchで各処理をかこっていますが、PHPのエラーは出ていません。 CSVファイルの行数を300から400に増やすと起こるので データ量が関係するのではないか、と考えております。 プログラムのエラー(不具合)か、否かを確認する方法はありますでしょうか? また、データ量が問題の場合、どのような回避策がありますでしょうか? CSVファイルを300行までしか読み込まないような制約を付けることも考えましたが プログラム的に可能なロジックがあれば、ご教示いただきたく思います。 ロリポップサーバのプランを上げることも考えましたが それでも、ファイルの読み込みには上限があるでのはないかと考えております。 何卒、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • レンタルサーバでPHPからMySQLに接続したい

    お世話になっています。 レンタルサーバー(ロリポップ)からPHPを使いMySQLに接続しようとしていますが、うまくいきません。 レンタルサーバー(ロリポップ)でのデータベース作成機能である、phpMyAdminを使ってデータベースを作成しました。 ホスト名:ftp260.lolipop.jp MySQLユーザ:LA12167219 パスワード:**** データベース名:LA12167219 上記の設定の場合、下記のように接続しようとしましたが、エラーメッセージがでます。 <PHPの内容> $con = mysql_connect("ftp260.lolipop.jp","LA12167219","****"); echo $con; <エラーメッセージ> Warning: mysql_connect(): Can't connect to MySQL server on 'ftp260.lolipop.jp' (111) in /pass~/sample.php on line 2 ロリポップの問題なのか、プログラムの問題なのか、よくわかりません。 対処法ご存知の方、アドバイスいただけると助かります。

    • ベストアンサー
    • PHP
  • ★MovableType4で1万エントリーするためのサーバありますか?

    MovableType4を使って10000エントリーくらいの投稿に耐えれるためのレンタルサーバーを探しています。またデータベースも関係するのでしょうか? ちなみに以前、MT3でロリポップサーバを使って、3000エントリーくらいは持ちましたが、それ以上投稿しようとすると再構築エラーになったり、タイムアウトになったりします。 それを回避したいのです!

  • ロリポップでDB・・・どうすればいいですか?

    超初心者な質問ですいません!ロリポップでPHP+Mysqlでデータベースを作れるようになりたいのですが、とりあえず何からはじめればいいのかもよく分かりません。 具体的に今何を作らなくてはいけないと言うのはないのですが、今後のために習得したいと思っております。 PHPは本を読めばなんとなく分かるような気がするのですが、Mysqlの方がさっぱり分かりません。 ロリポップでは、PHPMyadminと言うのを使ってDBを管理?するらしいのですが、これはいったい何者なんでしょうか? DBを作って、テーブルを作るもの?と認識していいのでしょうか? また、PHPMyadminの日本語の詳しい使い方が乗っている サイトってないのでしょうか? どなたか教えてください!お願いします。

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

    insertができない。 はじめまして。PHPとDBについて質問です。 マニュアルなどを読んでいろいろといじっていたのですが、どうにもうまくできません。 詳しい方どうかお助け願います。 現在、任意のサイトからHTMLソースを取得して、それをDBに書き込みたいと考えています。 しかしプログラムを動かすと 「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 'varXYZ' + (varA1)); varABC = ('varP' + (varA1)); if( document.getElementById )' at line 1」のようなエラーが発生します。 プログラムソースはこんな感じです。 _________________________ $url = "http://www.sample.com/"; $html = file_get_contents($url); $source = htmlspecialchars($html); echo $source; ~~~または~~~ $lines = @file($url); foreach( $lines as $source_num => $source ) { $array[] = htmlspecialchars($source); } echo "<pre>"; print_r($array); echo "</pre>"; ~~~~~~~~~ 上記のようなプログラムでソースの取得はできました。 あとは単純にinsertしているのですが。 $sql = "INSERT INTO テーブル名 (source) VALUES ('$source')";  sourceの種別はtextにしてあります。 さきほどのエラーがでて、insertができません。 いろいろ検索して、serializeとかを使うのかな?とも思ったのですが、 いまだに解決には至っておりません。 どうかよろしくお願いいたします。 環境 Windows7 Apache 2.0.63 PHP 5.2.6 Mysql 5.0.51b Smarty 2.6.19 SQLite 3.5.9 PhpMyAdmin 2.11.7 SQLiteManager 1.2.0 ZendOptimizer 3.3.3

    • 締切済み
    • PHP
  • phpMyAdminからphpMyAdminへのデータ移行

    レンタルサーバーにあるMySQLのデータをphpMyAdminからエクスポートし、ローカルホストにあるMySQLにphpMyAdminのSQLでデータをインポートしようとしています。 方法は以下の通りです。 レンタルサーバーのphpMyAdminを開き、エクスポートしたいデータベースを選択します。 エクスポートを開き、 全選択 SQL 構造: 「DROP TABLE」を追加 「IF NOT EXISTS」を追加 「AUTO_INCREMENT」値を追加 逆クオートでテーブル名やフィールド名を囲む データ: 完全な INSERT 文を作成する バイナリフィールドは 16 進数を使用する エクスポート形式:INSERT ファイルで保存する ファイル名テンプレート:__DB__ テンプレートを覚える 圧縮無し SJISエンコーディングへ変換する で、実行します。 8.43 MB (8,846,019 バイト)37602行 からなる膨大なsqlファイルが作成されます。 次にローカルホストのphpMyAdminを開き、インポートしたいデータベースを選択します。 SQLを開き、 参照より、エクスポートしたsqlファイルを読み込み 圧縮:Autodetect エンコーディングnon で、実行します。 実行の結果、 「SQLクエリー無し」 のメッセージで、SQLが終了します。 もちろん、データベースは移行されていません。 レンタルサーバーのMySQLをローカルのAccessでデータ加工し、レンタルサーバーのMySQLに戻すという作業をしたいだけなのですが(ローカルでバックアップも取っておきたい)、何か解決策はありませんでしょうか?

  • MySQLのTimestamp(14)型のフィールドにYYYY/MM/DD hh:mm形式のデータをインサートするには

    MySQLのTimestamp(14)型のフィールドに YYYY/MM/DD hh:mm形式のデータをインサートするには どのようにしたらよいのでしょうか? MySQL の Timestamp(14)型(YYYY-MM-DD hh:mm:ss)のフィールドに YYYY/MM/DD hh:mm 形式のデータ(ssに該当するデータがない)を インサートするには、 PHPでどのようにしたらよいのでしょうか? できれば、インサートの際にssに自動的に00をつけたいです。 現在、PHPでinsert文を実行すると、データの桁数が足りないため、 フィールドの値は、0000-00-00 00:00:00になってしまいます。 同じ形式(YYYY/MM/DD hh:mm)のデータをphpMyAdminで インポートすると、自動的にssに00がつき、 YYYY-MM-DD hh:mm:ss(例 2009-10-20 12:10:00) となってくれます。 PHPでもphpMyAdminと同じ処理をしたいのですが、 インターネットで検索してもやり方が見つからず、 どのようにしたらよいのか、わかりません。。。 インサートするデータサイズが83MBと大きいので、 PHPで処理したいと思っています。 (phpMyAdminは8MBまでなので) ご存知の方がいましたら、教えていただけると、 助かります。m(_ _)m レンタルサーバー:さくら インサートするファイル:CSVファイル PHP 5.2.x MySQL 5.1 phpMyAdmin 3.1.3.1

    • ベストアンサー
    • MySQL
  • スマートフォンからMySQLサーバーにインサート

    「HTML+javascript」のスマートフォンアプリから別サーバーのMySQLと連携させることを考えています。 サーバーの情報を取得することは問題なくできたのですが、サーバーにインサートする方法で悩んでいます。 【post.html】では、mysqlにインサートはされるものの、端末にはサーバーのinsert.phpがそのまま表示されてしまいます。 【post_kai.html】でfunction Check()を試したところ、送信ボタンを押した後に端末内のfinish.htmlが表示されましたが、残念ながらインサートが出来ていませんでした。 サーバーにインサートを完了させながら、その後は端末内のfinish.htmlを表示させるためにはどうすればいいでしょうか? ****************************** 端末側 ****************************** 【post.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <input type="button" name="button" value="送信" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【post_kai.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <script> function Check(){ document.form1.submit(); location.href="finish.html"; } </script> <input type="button" name="button" value="送信" onClick="Check();" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【finish.html】 <html> OKです <html> ****************************** サーバー側(mysql側) http://hoge.ne.jp/ ****************************** 【insert.php】 省略