G'day Стив,
Могу ли я спросить, почему вы используете SQL в CakePHP?
CakePHP использует модели и подход ORM для управления данными. Что можно найти здесь: http://book.cakephp.org/2.0/en/models.html
Предполагаю, что вы используете V2, потому что это тот, с кем я владею.
CakePHP навязывает вам назвать свои имена таблиц базы данных в форме множественного числа и классы моделей в единственном числе (например)
Database table name = users,
Model i.e (Class) name = User
Теперь, когда вы хотите сохранить данные пользователя, мы просто используем ORM CakePHP-
$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' => '[email protected]'));
ИЛИ один я использую
$this->User->save(array('id' => 1, 'email' => '[email protected]'));
Я надеюсь, что это ответ на ваш вопрос :)
я продлить его немного больше. Итак, вы упомянули, что имя таблицы - это «оценки». Таким образом, в нашей «/ приложении модель» папке в CakePHP мы создали бы файл PHP с именем Assessment.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'
);
Установите этот массив, чтобы он мог подключиться к db.
Теперь мы перейдем к контроллеру. Я предполагаю, что у вас есть настройка контроллера под названием 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 отвечает: «Вот иди».
Вам нужно предоставить дополнительную информацию - ваш код просто показывает строку, нет функций базы данных – Steve
Попробуйте добавить 'echo $ insertQuery;' сразу же после того, как вы ее объявите, и вставьте сюда, чтобы помочь нам понять проблему. – BradzTech
Добавил это и получил следующую информацию: INSERT INTO 'DBNAME'''TABLENAME' (' 1', '2',' 3', '4',' 5', '6',' 7') VALUES (' 1 ',' 2 ',' 3 ',' city ',' state ',' country ',' en ') – Steve