1

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

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

$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。

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

在此处输入图像描述

点击查看大图

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

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

4

3 回答 3

1

因为你没有插入IP STATUS.Which 不为空

数据库架构

\

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

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

function (){
//than define 
 $globat $masterUserId;
// use the global defination 
// than use this variable with global value
}
于 2012-10-04T06:00:58.427 回答
0

不要使用mysql_*. mysqli_*用或替换它们PDO::

你试过echomysql_query()?做这个。替换mysql_query("...");die("...");并将其放入 phpMyAdmin 并尝试执行。

在你的表中,我看到这IP Status是一个NOT NULL. 所以这可能会引发异常。使用default表中的值。

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

于 2012-10-04T06:02:31.310 回答
0

为什么在查询中使用 ''' 或 "'?我已经使用 PHP 函数sprintf清理了查询,并将 NULL 用于 EntryID(Autoincrement)

$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

于 2012-10-04T10:01:25.743 回答