将变量值插入MySQL表时出现问题

时间:2012-10-04 05:53:43

标签: php mysql

嘿我正在尝试将全局变量插入表中。我传递的其他值也是变量,但它们可以正确发送。

这是我的查询。我的错误处理没有捕获任何东西

$result = mysql_query("INSERT INTO IPmanagement (userId, NameUsed, EmailUsed, IPStatus, Ip) VALUES ('" .$masterUserId . "', '" . $Entry['LeadName'] . "', '" . $Entry['LeadEmail'] . "', '0', '" . $ip . "')") or die(ErrorException("Function 6", "Error when processing the current lead. your data is unaffected and if the proccess continues please contact an Admin.", mysql_error(),$_SERVER['REMOTE_ADDR'], CurrentPath(), $masterUserId));

我的变量是在函数

之前全局定义的
 $masterUserId = "1";

我尝试在变量发送之前回显该变量并且正确地回声我的表保持值为0.

这是我如何设置表格的屏幕截图。

enter image description here

Click for Larger Image

知道发生了什么。我很难过,并尝试以不同的方式编写相同的代码,它仍然给我同样的问题。另外$ masterUserId将始终是一个int值

编辑:还想提一下变量是不同的.php,其中包含可变数据库和数据库登录信息。它被包含在顶部。 (不知道这是否相关)

3 个答案:

答案 0 :(得分:1)

因为您没有插入IP STATUS。这不是空的

DATABASE SCHEMA

\

您应该将其设置为null或输入一些值。

如果您在函数中使用查询而不是像这样使用

function (){
//than define 
 $globat $masterUserId;
// use the global defination 
// than use this variable with global value
}

答案 1 :(得分:0)

请勿使用mysql_*。将其替换为mysqli_*PDO::

您是否尝试echo mysql_query()?做这个。将mysql_query("...");替换为die("...");并将其放入phpMyAdmin并尝试执行。

在您的表格中,我看到IP StatusNOT NULL。所以这可能会引发异常。在表格中使用default值。

是的,你在mysql_error()得到了什么结果?

答案 2 :(得分:0)

为什么'''或''在查询中? 我已经使用PHP函数sprintf清理了查询,并使用NULL作为EntryID(自动增量)

$query = sprintf("INSERT INTO IPmanagement (EntryID,userId, NameUsed, EmailUsed, IPStatus, Ip) VALUES (NULL,%s,%s,%s,'0',%s)",
$masterUserId , $Entry['LeadName'] , $Entry['LeadEmail'] , $ip ));
$result = mysql_query($query);

您还应该使用MySQLi或PDO