2017-10-06 36 views
0

我想將數據插入到2個表中,但只能插入一個表。 使用相同的代碼插入其他表中的作品。PHP無法插入到兩個表的特定表中

$isbn = mysqli_real_escape_string($mysqli, $_POST['isbn']); 
$title = mysqli_real_escape_string($mysqli, $_POST['title']); 
$author = mysqli_real_escape_string($mysqli, $_POST['author']); 
$category = mysqli_real_escape_string($mysqli, $_POST['category']); 

插入數據表類別不工作:

$query ="INSERT INTO category (book_category) 
        VALUES ('$category')"; 
$mysqli->query($query); 

桌上的書不工作:

$query ="INSERT INTO book (isbn, title, author) 
        VALUES ('$isbn', '$title', '$author')"; 
$mysqli->query($query); 

我敢肯定的是,attribute_names和表名是正確的。我也使用反引號,如:

$query ="INSERT INTO book (`isbn`, `title`, `author`) 
        VALUES ('$isbn', '$title', '$author')"; 
$mysqli->query($query); 

仍然不起作用。

有誰知道哪部分是錯的?

表結構:

(1) Table book: 
id (INT(11), primary key, auto_increment) 
isbn (VARCHAR(30)) 
title (VARCHAR(30)) 
author (VARCHAR(30)) 
category (INT(11), foreign key to TABLE category.cate_id 

(2) Table category: 
cate_id (INT(11), primary key) 
book_category (VARCHAR(30)) 

我在網頁上運行,並沒有錯誤消息。

添加新數據,新行應顯示在網頁上這樣後:

#ISBN  Title  Author  Category 
1234 HarryPotter JKRowling Literature 

,但沒有。 並且新數據無法插入到MySQL中的表「book」中,而可以插入到表「category」中。

+2

任何機會我們可以看到表配置? –

+1

是否有錯誤信息? – EdmCoff

+1

如果調用不成功,使用'mysqli_error'檢索錯誤消息。 http://php.net/manual/en/mysqli.error.php還有助於調試,啓用PHP錯誤報告。考慮echo或vardump'$ query',然後將該SQL文本帶到另一個客戶端(例如mysql命令行客戶端)進行測試。可能是各種各樣的事情......沒有足夠的特權,表不存在,列名錯誤,違反約束等。 StackOverflow是*問題和答案*網站,而不是代碼調試服務https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – spencer7593

回答

0

我們需要知道表格結構和試圖插入的數據以及錯誤消息。

無論如何:一個可能的問題可能是您多次插入相同的主鍵(isbn,我認爲),或者存在對您不滿意的類別表的引用。

+0

我已添加表結構和數據我試圖插入。沒有錯誤信息,所以語法應該沒問題。 – Rufus7

+0

當您插入書本時,您需要添加分類ID :) –

+0

您可能需要使用此功能:http://php.net/manual/en/function.mysql-insert-id.php 請最好回答如果我已經有幫助:)祝你好運:) –