为什么数据没有插入MYSQL表?

时间:2014-02-12 07:37:12

标签: php mysql post insert-query

我在本地计算机上创建了一个表单,数据库表等,但是没有插入数据。如果我运行打印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);
?>

5 个答案:

答案 0 :(得分:1)

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

其次,您需要将值放在'

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

'$value'

答案 1 :(得分:1)

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

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

这将让您更深入地了解查询的错误。还要尝试清理输入,因为人们只能在数据库中执行SQL注入。

答案 2 :(得分:1)

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

$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注入是开放的。我还建议在mysql_ *函数上使用mysqli_ *函数,这些函数在较新版本的PHP中已弃用。希望这会有所帮助:)

答案 3 :(得分:1)

您最好先检查一下您的连接

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

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

答案 4 :(得分:1)

试试这样:

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

您应该使用mysqli_query,否则您可以使用msql注入!