0

シナリオは次のとおりです。SQLクエリのtxtファイルをアップロードしています。アップロードが成功するたびに、そのコンテンツも実行する必要があります。

さて、一連のクエリを実行できないようです。たった一行のクエリ。

私はquery.txtを持っています:

USE `wifi_analyzer`;

CREATE TABLE 'test' (
    'username' varchar(10) NOT NULL,
    'password' varchar(10) NOT NULL
    );

そして、これが私のcakephpファイルで実行する方法です。

$fullFile = $file_path.$file_name;
$readFile = fopen($file_path.$file_name, 'r');
$contents = fread($readFile,filesize($fullFile));
$this->User->query($contents);

ファイルとその内容を読み取ることができます。ただし、次のエラーが表示されます。

SQL 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 'CREATE TABLE 'test' (
    'username' varchar(10) NOT NULL,
    'password' varchar(10' at line 3 [CORE\cake\libs\model\datasources\dbo_source.php, line 673]

それが次のような 1 行のクエリである場合は、次のようになります。

Select * from sometable;

エラーは表示されません。しかし、この単一のクエリ:

CREATE TABLE 'test' (
'username' varchar(10) NOT NULL,
'password' varchar(10) NOT NULL
);

同様に実行されません。


更新:まあ私はこれを読みました: http://www.hardcode.nl/subcategory_4/article_558-execute-mysql-sql-dump-files-via-php-mysqli.htm

しかし、私はcakephpでそれをやっているので、これが役立つかどうかはわかりません

4

1 に答える 1

3

テーブル名とフィールド名に一重引用符を使用しないでください。以下のクエリを実行すると動作します

CREATE TABLE `test` (
`username` varchar( 10 ) NOT NULL ,
`password` varchar( 10 ) NOT NULL
);
于 2012-06-30T18:51:44.437 に答える