2015-06-30 133 views
0

我想知道如果你能幫我找到這個幻影錯誤。以下方法只能在運行腳本時調用一次,並且我不會在這方面發生任何錯誤。我在任何地方都安置了調試,它確認這個方法已經運行,但是值第二次被調用時就沒有被輸入到數據庫中。PHP方法只能運行一次[SQL]

請注意大部分變量和要求已被重命名爲虛擬名稱,但我知道100%他們是正確的。

function customFunction($sql, $ID, $x, $y, $z) 
{ 

require_once("sql.php"); 
require_once("econ.php"); 

mysqli_select_db($sql, "TheDatabase"); 

$stmt = mysqli_prepare($conn, "INSERT INTO Pending (status, ID, Action, x, y, z) VALUES (?, ?, ?, ?, ?, ?)"); 

$status = 'none'; 
$action = 'give'; 

mysqli_stmt_bind_param($stmt, 'ssssss', $status, $ID, $action, $x, $y, $z); 

mysqli_stmt_execute($stmt); 

mysqli_stmt_close($stmt); 
} 
+0

你假設沒有錯誤,但你沒有錯誤檢查。 –

+1

如果您多次調用該函數,則需要多次訪問數據庫。更好的方法是讓方法接受'$ conn',並且需要'sql.php','econ.php'一次(在函數之外)。 –

+0

@JayBlanchard我啓用了錯誤日誌記錄,並檢查錯誤日誌。我一直在爲這個項目工作好幾個月,這對我很有用 –

回答

0

請確保您的MySQL列不阻止您插入新數據。用echo mysqli_error($conn);讀取錯誤。

另一種方法是用DESCRIBE table_name;檢查約束。在你的情況下,DESCRIBE Pending