我有什么应该是一个简单的问题要解决,我有数据需要插入到我的数据库中以便将来导出到CSV然而标准的PHP代码对我来说不起作用,我尝试了以下行没有运气:
$insertQuery = ("INSERT INTO `DBNAME`.`TABLENAME` (`1`, `2`, `3`, `4`, `5`, `6`, `7`) VALUES ('{$1}', '{$2}', '{$3}', '{$cityquery['city']}', '{$cityquery['regionName']}', '{$cityquery ['country']}', '{$lang}')");
提前致谢!
答案 0 :(得分:2)
G'史蒂夫,
请问你为什么在CakePHP中使用SQL?
CakePHP使用模型和ORM方法来管理数据。可在此处找到:http://book.cakephp.org/2.0/en/models.html
我假设你正在使用V2,因为那是我精通的人。
CakePHP强制您以复数形式调用数据库表名称,并以单数形式调用模型类(例如)
Database table name = users,
Model i.e (Class) name = User
现在,当您想将数据保存到用户时,我们只需使用CakePHP的ORM
$this->User->save(); //Now, assume we want to add a new record, we simply do:
$this->User->save(array('first_name' => 'Melon', 'last_name' => 'Head'));
如果我们想要编辑现有记录,可以采用几种方法来处理它。一个例子是:
$this->User->id = 1;
$this->User->save(array('email' => 'melon.head@yahoo.com'));
或我使用的那个
$this->User->save(array('id' => 1, 'email' => 'melon.head@yahoo.com'));
我希望这能回答你的问题:)
我会再延长一点。你提到表名是'评估'。因此,在我们的app / Model' CakePHP中的文件夹我们在我们的文件中创建一个名为Assessment.php的php文件:
class Assessment extends AppModel{}
这是第一步,连接到数据库,在app / Config / database.php'中有一个文件。当我们打开这个文件时,我们会看到一个数组:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'mysql_user',
'password' => 'da_password',
'database' => 'the_db_name',
'encoding' => 'utf8'
);
设置此数组,以便它可以连接到数据库。
现在我们去控制器。我假设您有一个名为AssessmentController.php的控制器设置,如果您不这样做我们很快就会修复它。
在Controller中,我们设置了一个保存数据的函数,例如
public function index(){
//Here we'll save the data
//I'll assume also you know where $1 is coming from.
//Data from the user comes through the array var $this->request->data
$this->Assessment->save(
array(
'1' => "{$1}"
)
);
}
如果您设置了不同的控制器名称,那就没问题。在上面的示例中,CakePHP自动将相同模型和控制器名称连接在一起,我们有评估控制器和评估模型
如果我们有一个不同的控制器,例如控制器叫做Student,那么我们只需在控制器中添加一个名为$ uses的数组
public $uses = array('Assessment');
这将告诉CakePHP'嘿,我需要这个模型'。 CakePHP会回答你的问题。