我正在使用MySQLi準備語句來執行此操作,因爲數據來自其他來源。 這是我的代碼,它不工作的人。我不明白爲什麼我需要做的$ stmt-> store_result()才能運行NUM_ROWS()。因爲如果我不跑store_result,我會得到一個錯誤:我想搜索數據庫,如果表中已經包含數據,如果沒有,則插入它
Fatal error: Call to a member function bind_param() on a non-object
foreach($this->contents as $key => $dealer) {
foreach($dealer as $deals) {
$stmt = $mysqli->prepare("SELECT id, name FROM company WHERE name = ? LIMIT 1");
$stmt->bind_param("s", $deals['company']);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows() > 0) {
$companyid = // I don't know how to get the id from the query
} else {
$stmt->prepare("INSERT INTO company (name) VALUES (?)");
$stmt->bind_param("s", $deals['company']);
$stmt->execute();
}
$stmt->close();
}
}
基本上我希望代碼檢查公司表中是否存在公司,然後檢查公司表後,如果公司存在,那麼我需要記錄公司的ID,以便我可以在我的其他查詢中使用它,但是如果它不存在,那麼我需要記錄公司名稱,然後得到的ID,所以我可以在我的其他查詢中使用它。
請幫幫我。
這個怎麼樣:[?如何 '插入如果不存在' 在MySQL(http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in -mysql) – 2011-03-22 13:51:36
哇,這是偉大的不知道,它甚至存在 – 2011-03-22 16:23:38