2017-10-07 106 views
0

我沒有做插入查詢,所以mysqli_insert_id不工作。如何從表A中獲取INT-type id並將其插入到另一個表中?在PHP

我需要選擇一個ID(主,INT)從表A將被插入到表B.

我的表結構:

Table book: 
-id (Primary, Auto Increment, INT) 
-title 
-publisher_id (Foreign key to Table publisher.pub_id, INT) 

Table publisher: 
-pub_id (Primary, Auto Increment, INT) 
-publisher 

我想是這樣的:

$query ="SELECT pub_id FROM book WHERE publisher = '$publisher' "; 
$result=$mysqli->query($query); 
$pub_id=$result->fetch_assoc(); 

$query ="INSERT INTO book (title,publisher_id) 
       VALUES ('$title', '$pub_id['pub_id']')"; 
$mysqli->query($query); 

然後,我得到錯誤信息,如:

syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) 

數據類型或其他東西有問題嗎?

如何從Table Book中獲取INT-type id並將其插入到另一個表中?

+0

哪一行的錯誤說? –

+0

這行$ query =「INSERT INTO book(title,publisher_id) VALUES('$ title','$ pub_id ['pub_id']')」; – Rufus7

+0

當你說'SELECT pub_id FROM book'時,你的意思是'FROM publisher'吧? –

回答

0

它不工作,因爲你這樣做:

$query ="INSERT INTO book (title,publisher_id) 
       VALUES ('$title', '$pub_id['pub_id']')"; 

試試這個:

$query ="INSERT INTO book (title,publisher_id) 
       VALUES ('$title', '".$pub_id['pub_id']."')"; 
+0

它確實有用!非常感謝! – Rufus7

+0

很高興有幫助,如果這個答案解決了你的問題,你可以將它標記爲已解決,如果以前沒有轉義,你也可能想要逃避'$ title'變量。 –

+0

謝謝,順便說一句,爲什麼'「。$ pub_id ['pub_id']。」 ''雖然'$ pub_id ['pub_id']'不'? – Rufus7

相關問題