2012-06-07 21 views
0

这里是场景,我正在上传一个sql查询的txt文件。而且每次成功上传,我都需要执行其内容。在Cakephp中没有执行多个SQL查询

好吧,我似乎无法执行一组查询。只需单行查询。

我已经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] 

好吧,如果它只是一个单一的在线查询是这样的:

Select * from sometable; 

它不显示任何错误。但是这个单一的查询:

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

它也没有执行。


UPDATE: 好吧,我已阅读本: http://www.hardcode.nl/subcategory_4/article_558-execute-mysql-sql-dump-files-via-php-mysqli.htm

,但不知道这是否会帮助,因为我这样做在CakePHP中

+0

var_dump($ contents)'show? –

+0

它显示:string(121)“CREATE TABLE'test'('username'varchar(10)NOT NULL,'password'varchar(10)NOT NULL);” – Charmie

回答

3

不使用的表和字段名称的单引号。执行以下查询它将工作

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