2015-12-18 5 views
0

Это тайна для меня, и никто, что я читал до сих пор, не имел этой проблемы, и я теряю рассудок здесь, так что здесь. Я пытаюсь запустить этот простой запрос из 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; 
} 
+0

вопрос в том, почему ваш столбец ID содержит более одного идентификационного номера для каждой строки? вам нужно показать нам свою схему БД или посмотреть, что предоставил вам человек в качестве ответа. –

+0

Плюс, ошибка, отличная от объекта, может быть связана с чем-то другим, например кодом, который вы нам не показываете, и в зависимости от того, как он запрашивается и используется соединение. API, который вы используете, неизвестен, но, похоже, является mysqli, поэтому, если вы не используете правильную проверку ошибок, посетите http://php.net/manual/en/mysqli.error.php и примените это к вашему запросу. Если PDO, http://php.net/manual/en/pdo.error-handling.php –

+0

Я только что добавил схему для справки по запросу. –

ответ

0

Извините людей ... в конце концов, я был ошибочно используя if(!result) для проверки запрос прошел по предыдущему запросу вставки к показанному, и это привело к сбою всей транзакции. Мои извинения. Спасибо @Darwin von Corax за то, что он указал мне в правильном направлении.

Смежные вопросы