FXIX
хз, может кто-то натыкался на такой глюк. Есть innodb таблица. в нее скрипт пишет данные (скрипт на BDSimple). простой скрипт:
public function setContentRaw($val) {
foreach ($val['article'] as $val2) {
$row = array(
'source_id' => $val['id'],
'url' => $val2['url'],
'title' => $val2['title'],
'date' => date('Y-m-d'),
);
$id = $this->connect->query("INSERT INTO `" . DATABASE . "`.`" . TB_CONTENT_RAW . "` SET ?a", $row);
echo $id . '<br />'; // Вернет ID-ы вставленных записей
}
}
Создаем БД, создаем таблицу. Запускаем скрипт. Отрабатывает нормально (т.е. пишет в базу). Очищаем таблицу, - в phpmyadmin тыкаем галку на корзину (что вызывает оператор truncate table). снова прогоняем скрипт - в таблицу не пишет. Если очистить таблицу через "выделить все строки - нажать крестик" - т.е. очистить построково. Снова запустить скрипт - пишет. т.е. все работает. Т.е. после операции truncate table скрипт в чистую таблицу не пишет нихера данные. Если самому руками создать строчку, потом ее удалить, потом прогнать опять скрипт - то все в поряде. Что за целка непробиваемая после truncate?
Stek
Может у тебя phpmyadmin косячит ? После truncate таблица в каком состоянии, чистая ? Если select в ней сделать, что будет ?
Плюс прогнать проверку на ошибки.
FXIX
спасибо други буду тестить. отпишусь
Pentarh: truncate итак очищает через delete если в таблице есть foreign key (в данном случае нет), а если нет то таблица удаляется и потом создается. автоинкремент на ноль
Stek: пхпадмин последний. мускуль 5.1.48-community. Стек а как ошибки посмотреть? логи? скрипт консольный. ошибок не выдает вообще никаких
Dr.Syshalt
Не гадай, просто включи query log и глянь, что там происходит. А то кусочек кода, неизвестная база без DDL и "люди добрые, погадайте, в чем там дело, поломайте голову"
Stek
FXIX: в самом phpmyadmin посмотри пункты проверки таблиц на ошибки.
Цитата:
truncate итак очищает через delete если в таблице есть foreign key (в данном случае нет), а если нет то таблица удаляется и потом создается. автоинкремент на ноль
Не совсем так. С MyIsam таблица дропается и пересоздается заново. В InnoDB вроде просто через delete , хотя в новых версиях mysql обещали как то улучшить это дело.