Это тайна для меня, и никто, что я читал до сих пор, не имел этой проблемы, и я теряю рассудок здесь, так что здесь. Я пытаюсь запустить этот простой запрос из PHP на базе данных MySQL с пользователем, который имеет все необходимые права (как правило, есть более чем одна запись в массиве ID):Действительный MySQL Удалить Запрос, возвращающий не-объект
$sqlDelete = 'DELETE FROM wsa.customers WHERE `id` IN (18)';
$result = $conn->query($sqlDelete);
Когда я запускаю этот код из phpmyadmin и workbench выполняется просто отлично, но не использует php на сервере (хотя он обрабатывает обновления и вставляет без проблем).
Результат $ не является объектом результата (хотя это должно быть), и я не вижу никаких ошибок или предупреждений вообще ... все как будто ничего не получилось, хотя пользователь явно не удаляется.
Я просто хотел бы получить информацию о том, где я должен выглядеть, поскольку это не проблема синтаксиса ... У меня закончились идеи.
Благодаря
UPDATE ON SCHEMA ВОПРОС:
CREATE TABLE `agreements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`creator_id` int(11) NOT NULL,
`term` tinyint(4) NOT NULL,
`contractDate` date NOT NULL,
PRIMARY KEY (`id`),
KEY `creatorid_idx` (`creator_id`),
CONSTRAINT `userid` FOREIGN KEY (`creator_id`) REFERENCES `master`.`login` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
CREATE TABLE `customers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`agreement_id` int(11) NOT NULL,
`name` varchar(128) NOT NULL,
`plan` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `agreementid_idx` (`agreement_id`),
CONSTRAINT `agr_id` FOREIGN KEY (`agreement_id`) REFERENCES `agreements` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
UPDATE 2: Connnection Детали:
$dbhost = 'localhost';
$dbuser = 'xxx';
$dbpass = 'yyy';
$conn;
$conn = new mysqli($dbhost, $dbuser, $dbpass, 'wsa');
if ($conn->connect_errno) {
echo "Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}
вопрос в том, почему ваш столбец ID содержит более одного идентификационного номера для каждой строки? вам нужно показать нам свою схему БД или посмотреть, что предоставил вам человек в качестве ответа. –
Плюс, ошибка, отличная от объекта, может быть связана с чем-то другим, например кодом, который вы нам не показываете, и в зависимости от того, как он запрашивается и используется соединение. API, который вы используете, неизвестен, но, похоже, является mysqli, поэтому, если вы не используете правильную проверку ошибок, посетите http://php.net/manual/en/mysqli.error.php и примените это к вашему запросу. Если PDO, http://php.net/manual/en/pdo.error-handling.php –
Я только что добавил схему для справки по запросу. –