2015-12-18 53 views
0

這是我的一個謎,迄今爲止我沒有讀過這個問題有這個問題,我在這裏失去了我的想法,所以在這裏。我試圖與所有必要的權限的用戶一個MySQL數據庫上運行PHP的,從這個簡單的查詢(通常存在的ID陣列中的多個條目):有效的MySQL刪除查詢返回非對象

$sqlDelete = 'DELETE FROM wsa.customers WHERE `id` IN (18)'; 
$result = $conn->query($sqlDelete); 

當我運行此代碼phpmyadmin和workbench這個執行得很好,但是不在服務器上使用php(儘管它處理更新和插入沒有問題)。

$ result不是一個結果對象(儘管它應該是),我根本沒有看到任何錯誤或警告......一切都好像沒什麼不好,雖然用戶顯然沒有被刪除。

我只想得到我應該在哪裏尋找的輸入,因爲這不是一個語法問題....我已經用完了想法。

感謝

UPDATE圖式問題:

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; 

更新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列包含每行多個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)測試是否該查詢在前一個插入查詢上顯示出來,並導致整個事務失敗。我很抱歉。感謝@達爾文馮Corax指出我在正確的方向。