0

我在本地机器上创建了一个表单、数据库表等,但没有插入数据。如果我运行打印 sql 查询并将其粘贴到 PHP myadmin 中,那么它将插入值。谁能指导我确定未将值插入数据库的问题?以下是我的代码:

不要看 POST 的值。他们来得很好。问题必须在我认为的 PHP 代码中。

$hlr2RegQty=$_POST['txtHLR2Reg'];
$hlr2MicroQty=$_POST['txtHLR2Micro'];
$hlr2NanoQty=$_POST['txtHLR2Nano'];

$hlr3RegQty=$_POST['txtHLR3Reg'];
$hlr3MicroQty=$_POST['txtHLR3Micro'];
$hlr3NanoQty=$_POST['txtHLR3Nano'];
$count= $hlr1RegQty+$hlr2RegQty+$hlr3RegQty+$hlr1MicroQty+$hlr2MicroQty+$hlr3MicroQty+$hlr1NanoQty+$hlr2NanoQty+$hlr3NanoQty;

$conn=mysql_connect('localhost','root','');

mysql_select_db('prime_comm', $conn);

$query="INSERT INTO `prime_comm`.`newsim`(`Invoice No`, `HLR-1`, `HLR-2`, `HLR-3`, `HLR-4`, `MICRO-1`, `MICRO-2`, `MICRO-3`, `NANO-1`, `NANO-2`, `NANO-3`, `Total Count`, `Amount`, `VAT`) 
            VALUES( $invoiceNo, $hlr1RegQty,$hlr2RegQty,$hlr3RegQty,0,$hlr1MicroQty,$hlr2MicroQty,$hlr3MicroQty,$hlr1NanoQty,$hlr2NanoQty,$hlr3NanoQty,$count, 0,0)";
$flag = mysql_query($query);
?>
4

5 回答 5

1

首先,您很容易受到 SQL 注入的攻击。这是一个严重的安全漏洞。

其次,您需要将值放入 '

像那样(必须首先使用 mysql_real_escape_string 或类似方法对 $value 进行清理):

'$value'
于 2014-02-12T07:39:44.107 回答
1

还请尝试查看您现在忽略的错误消息。

$flag = mysql_query($query) or die(mysql_errno() . ' ' . mysql_error());

这将使您更深入地了解您的查询出了什么问题。还要尝试清理您的输入,因为人们可以在您的数据库中执行 SQL 注入。

于 2014-02-12T07:40:15.660 回答
1

你最好先检查你的连接

$check = mysql_connect('localhost', '', '');
    if (!$check) {
        die('Could not connect: ' . mysql_error());
    }

如果您没有收到该错误消息,请尝试 var_dump() 您要插入的所有数据以查看它是否为空。

于 2014-02-12T07:44:06.007 回答
0

尝试在变量周围加上单引号;

$query="INSERT INTO `prime_comm`.`newsim`(`Invoice No`, `HLR-1`, `HLR-2`, `HLR-3`, `HLR-4`, `MICRO-1`, `MICRO-2`, `MICRO-3`, `NANO-1`, `NANO-2`, `NANO-3`, `Total Count`, `Amount`, `VAT`) 
            VALUES( '$invoiceNo', '$hlr1RegQty', '$hlr2RegQty', '$hlr3RegQty', 0, '$hlr1MicroQty', '$hlr2MicroQty', '$hlr3MicroQty', '$hlr1NanoQty', '$hlr2NanoQty', '$hlr3NanoQty', '$count', 0,0)";

此外,永远不要假设发布数据是您所期望的,或者干净/安全,因为这对 sql 注入非常开放。我还建议使用 mysqli_* 函数而不是 mysql_* 函数,这些函数在较新版本的 PHP 中已被弃用。希望这可以帮助 :)

于 2014-02-12T07:41:00.793 回答
0

试试这样:

mysql_query("INSERT INTO  tablename (row-name-1, row-name-2)
values({$variable1}, {$variable2})");

您应该使用 mysqli_query,否则您很容易受到 msql 注入的影响!

于 2014-02-12T13:42:44.287 回答