Я задал пару вопросов здесь в спешке, и я никуда не спешу, я все время меняю вещи и просто сталкиваюсь с другой проблемой, и не ближе к пониманию того, что ее вызывает.Я - человек, работающий с PHP MYSQL, и мне приходится работать с Access через класс COM.
В основном клиент имеет несколько серверов, каждый с базой данных доступа, и каждый с CMS, таблицы должны содержатьте же данные и выскользнули из синхронизации.Моя работа заключается в том, чтобы придумать способ их повторной синхронизации.
Я пришел к выводу данных в массив, их сериализации и сохранению в файл на главном сервере (который должен синхронизироваться).к) и затем на других серверах, загружая файл, десериализуя его и элемент за элементом, проверяя, находится ли он в БД, и если не вставляет его.Вставка не работает.Я попытался создать SQL-запрос для каждого элемента и делать $ this-> conn-> Execute ();и это терпит неудачу построчно на глупых вещах, поэтому я сейчас пытаюсь это:
function syncCMS()
{
$this->output['msg'] .= "<p><b>The following properties were added to the database on ." . $this->hsite . "</b></p>";
$this->get_field_names();
$this->make_connection(); //assigns connection to $this->conn
$rs = new COM('ADODB.Recordset');
$rs->CursorType = 2;
$rs->CursorLocation = 1;
$rs->LockType = 4;
$rs->Open($this->table_name,$this->conn);
foreach ($this->awayPropertyDetails as $key => $property)
{
$this->check_for_property($property['pname']);
if (!$this->property_exists || $this->mode == "fullSync")
{
unset($values);
$bfields = array("pshow","rent","best", "oda1", "oda2", "oda3", "oda4", "oda5", "oda6", "odap", "topool","tomountain","tofitness","tosauna"); //stores the yes/no values
$q = "INSERT INTO " . $this->table_name . " (" . $this->dbfields . ") VALUES (";
foreach ($property as $k => $value)
{
if ($k == "Kimlik") {
$value = null;
}
if ($k == "tarih")
{
$value = date("d/m/Y");
$value = "'" . $value . "'";
}
if (in_array($k,$bfields))
{
if ($value == "")
{
$value = 'FALSE';
}
else
{
$value = 'TRUE';
}
}
$rs->fields->$k = $value;
$this->output['msg'] .= $property['pname'] . " added";
}
$rs->BatchUpdate();
$rs->Close();
$this->conn->Close();
//$this->download_images($property['OBJECT_NR'],$k);
//$this->output['msg'] .= "<p>Images added</p>";
}
}
$message .= "</ul>";
$this->output['msg'] .= $message;
$this->sendOutput();
//print_r($property);*/
}
И получаю это:
Неустранимая ошибка: необнаруженное исключение 'com_exception' с сообщением 'Невозможнопоиск `Кимлик ': неизвестное имя.'в D: \ inetpub ...
Kimlik - это имя первого поля, поле Auto Number, я вынул его, и проблема переместилась на второе поле.