プロが教えるわが家の防犯対策術!

PHP 4.4.8 MYSQL 4.0.27 で、HTMLはEUC MYSQLもEUCで運用しています。
PHPの中に以下のように動作させようとしています。
$sql = "LOAD DATA INFILE 'data.txt' INTO TABLE test FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n'";

エラーを表示させるために
$rst = mysql_query($query) or die("<b>A fatal MySQL error occured</b>.\n<br />Query: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());
すると

A fatal MySQL error occured.
Query:
Error: (1065) Query was empty

このような表示が出てきます。


テーブルはフィールド2つで両方とも varchar(100) にしています。
タブ区切り、改行はCRLFです。
こうしておいた方が、ミスが特定しやすいと思って。

11 1111
22 2222

phpmyadmin からは、load 出来ます。*フィールドの区切りを【\t】に変更するだけで。

同じディレクトリに上記PHPを書いたファイルと読み込ませる【data.txt】を置いています。

**同じMYSQL 同じディレクトリで表示やselect は出来るのでパスワードなどのミスでは無いようです。

やりたい事は、毎月10万レコード程度を入力したいのですが、
phpmyadmin からの操作ではなく、PHPで処理をしたいのです。

多分、そんなに難しい事ではないので 過去ログを見ても、本屋さんで探しても詳しく解説していなくて
私の間違いが、特定出来ません。

どなたかご教授いただけるととてもありがたいです。m(__)m

A 回答 (1件)

エラー内容は下記です。


Error: 1065 SQLSTATE: HY000 (ER_EMPTY_QUERY)
Message: Query が空です.

Query が空という事はSQL文が通ってないと言うことです。
こう直せばたぶん行くと思いますよ。
$rst = mysql_query($sql) or die("<b>A fatal MySQL error occured</b>.\n<br />Query: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/error-ret …

この回答への補足

早速アドバイスを頂きまして、ありがとうございます。

ご指摘のようにソースを変更いたしましたが、今度は違うえらーメッセージが表示されました。

A fatal MySQL error occured.
Query:
Error: (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 ''' at line 2


<?php
require_once("dbini.php");

$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
$selectdb = mysql_select_db($DBNAME, $con);

$sql = "SET NAMES ujis";
mysql_query($sql,$con);

最初に書いているソースの上の方には上記のように記入してあって、特別問題があるようには思えないのですが。
【dbini.php】の中身は間違いありません。

もしよろしければ、再度アドバイスを頂けると幸いですm(__)m

補足日時:2008/11/03 20:45
    • good
    • 0
この回答へのお礼

自己解決いたしました。。

レンタルサーバーなので、権限が無い!
と言う結論にたどり着きました。

でも、それが分からないので
色々しているうちに構文自体までおかしくなって^_^;

お手数をおかけしました、
ありがとうございます。

お礼日時:2008/11/03 22:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!