Как восстановить работу MySQL?
Буквально вчера сохранял данные в базу по cron при выполнении php скрипта, сегодня обнаружил, что данные перестали сохраняться. С чем это может быть связано?
Мой запрос
$stmt = $conn->prepare('INSERT INTO `my_order` (`order_id`, `status`, `ware_id`, `fio`, `email`, `customerLink`, `createdAt`) VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE `order_id` = VALUES(`order_id`), `status` = VALUES(`status`), `ware_id` = VALUES(`ware_id`), `fio` = VALUES(`fio`), `email` = VALUES(`email`), `customerLink` = VALUES(`customerLink`), `createdAt` = VALUES(`createdAt`)');
$stmt->bind_param('isissss', $order_id, $status, $ware_id, $fio, $email, $customerLink, $createdAt);
Ранее все работало, была ошибка в bind_param но я ее устранил.
В базе легко создаются новые таблицы из php, в существующую базу вносятся sql данные через phpMyAdmin, но не из скрипта.
Могла база сама заблокироваться?
Вижу странные строки в дампе, если скачивать базу из ISP LOCK TABLES my_order WRITE; и UNLOCK TABLES; которых нет при импорте из phpMyAdmin
DROP TABLE IF EXISTS `my_order`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `my_order` (
`order_id` int(11) NOT NULL DEFAULT '0',
`status` varchar(40) NOT NULL DEFAULT 'CREATED',
`ware_id` int(11) NOT NULL DEFAULT '0',
`fio` varchar(40) NOT NULL DEFAULT 'fio',
`email` varchar(40) NOT NULL DEFAULT 'email',
`customerLink` varchar(255) NOT NULL,
`createdAt` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
UNIQUE KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `my_order`
--
LOCK TABLES `my_order` WRITE;
/*!40000 ALTER TABLE `my_order` DISABLE KEYS */;
/*!40000 ALTER TABLE `my_order` ENABLE KEYS */;
UNLOCK TABLES;
Что могло случиться с базой?
Должны ли сохраняться данные в базу, если реальное кол-во столбцов в таблице больше чем в INSERT INTO и bind_param (просто интересно)?
Спасибо!