2012-11-29 23 views
0

這讓我瘋狂! 我正在使用php將table1中的記錄插入到table3中。那麼 也會將table2插入到table3中。一個PHP腳本,2個查詢,但第二個不會工作

但是,第二次插入不起作用。下面是一個簡單的版本:

if ($result = $mysqli->query("TRUNCATE TABLE table3")) { 
    echo "TRUNCATE table3 ".$result; 
} 
if ($result = $mysqli->query("INSERT INTO table3 SELECT * FROM table1")) { 
    echo "table1 inserted ".$result; 
} 
if ($result = $mysqli->query("INSERT INTO table3 SELECT * FROM table2")) { 
    echo "table2 inserted ".$result; 
} 

沒有錯誤,等等。在上面的代碼 ,「表2插入」不顯示。

所以我這樣做:

$mysqli->query("TRUNCATE TABLE table3"); 
$mysqli->query("INSERT INTO table3 SELECT * FROM table1"); 
$mysqli->query("INSERT INTO table3 SELECT * FROM table2"); 

又沒有錯誤,但表2未插入。

我用:

printf("%s\n", $mysqli->info); 
$mysqli->ping(); 

一切都很好,但我不能讓第二插入執行。 它沒有任何意義,爲什麼它不工作。

感謝您的幫助,時間!

+0

不要'截斷表格 - 這是殘酷的,應該作爲最後的手段。只需創建一個數據庫並進行插入,更新和刪除。請閱讀RDBMS –

+1

第二個查詢失敗,具體取決於table2的內容和結構,如果結構相同,您可能在主鍵/唯一鍵上有重複項?如果你給我們更多關於表格結構和內容的細節,我們應該能夠把它整理出來。此外,在第二次插入失敗後,您應該檢查http://php.net/manual/en/mysqli.error.php以查看發生了什麼。 –

+0

請有人可以告訴我爲什麼要在腳本中截斷表格。我只用它作爲一次性的事件 - 又非常罕見。 –

回答

1

檢查mysqli_error以檢索有關查詢失敗的信息。

+0

我有錯誤檢查它,但不是正確的方式。我添加了這種方式︰if(!$ mysqli-> query(「INSERT INTO table3 SELECT * FROM table2」)){ printf(「Errormessage:%s \ n」,$ mysqli-> error); }它終於給了我我的問題---重複鍵。我所有的表格都是彼此的副本,主鍵是自動的......所以我脫掉了自動增量設置,它的工作完美!感謝提示/想法安德烈! – user1864734

+0

很高興我幫助過,隨時將答案標記爲已接受。 –

相關問題