2015-06-30 30 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