Я использую CodeIgniter 1.7.3, Datamapper DMZ 1.7.1 (и нет, обновление не вариант), MySQL 5.1 и Cron Job Boostrapper для приложения, которое я создаю.Я пытаюсь извлечь информацию из файла XML и сохранить ее в базе данных.Получение данных работает нормально, как и получение данных из базы данных, поэтому я знаю, что это не проблема ни с подключением к базе данных, ни с файлом XML.
$this->site = $this->site->get_by_short_name('site');
//Load the XML files into variables so we can do stuff with them.
$doctors = simplexml_load_file(realpath('../xml/doctors.xml'));
foreach ($doctors->children() as $doctor) {
$dr = new Doctor();
$attrs = $doctor->attributes();
/* See if the Doctor already exists. If so, update it.
* Datamapper won't update fields that don't change, so if nothing's
* changed, then the DB call won't be made.
*/
$dr->get_by_drkey($attrs['Key']);
$dr->drkey = $attrs['Key'];
$dr->first_name = $doctor->FirstName;
$dr->middle_name = $doctor->MiddleName;
$dr->last_name = $doctor->LastName;
$dr->long_name = $doctor->LongName;
$dr->degrees = $doctor->Degrees;
$dr->pic = $doctor->ImageURL;
$dr->save($this->site);
}
Я проверил возвращаемое значение $dr->save($this->site)
и возвращается как «истина» («успешное сохранение»), но данные не сохраняются и ошибки нет.Я пробовал без отношения (удалил требование для этого в базе данных), поэтому он должен сохранить без ошибок, но он все еще не сохраняет.Я также дважды проверил настройку отношений в моделях, и они в порядке.
Я также попытался обойти Datamapper и сделать прямое $this->db->insert('doctors',$data)
с данными, преобразованными в массив, но данные все еще неспасти.Я также попытался запустить его из браузера (в обход загрузчика), чтобы увидеть, была ли проблема связана с запуском из командной строки, но это также не сработало.Я также не выполняю автозагрузку каких-либо библиотек сеансов или аутентификации, чтобы не возникала известная проблема с загрузчиком.
Кто-нибудь знает, почему это может не работать?