史蒂夫,
请问您为什么在 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'));
我希望这能回答你的问题:)
我会再扩展一点。您提到表名是“评估”。因此,在 CakePHP 的 'app/Model' 文件夹中,我们将在我们拥有的文件中创建一个名为 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 的控制器设置,如果您不这样做,我们会尽快解决。
在控制器中,我们设置了一个函数来保存我们的数据,例如
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 响应“给你”。