2015-07-11 85 views
1

我正在创建一个页面,用户填写报表并将该报表插入到数据库中 我在我的php页面下面应该向表格报表插入新值,但它正在更新代替PHP正在更新,而不是插入

<?php 
include 'connectionfile.php' ; 
$ref = $_POST['ref']; 
$title =$_POST['titl']; 
$type = $_POST['type']; 
$content = $_POST['content']; 
session_start(); 
$sql = "insert into reports (reference, title,id_type, content) values ('".$ref."', '".$title."', '". $type."','".$content."');"; 
$result =mysqli_query($con,$sql); ?> 

是因为id_type(表型的主键)是值1和2的外键-in表报告 - ?

因为如果我插入id_type=1例如,id_report(表报告的主键)增量为1,同去id_type=2

答案可能是明确的,我在web开发的知识被遗忘了。

+0

这是不可能的,检查您的表或您的定义触发器或更新可能是模糊的 – Mihai

+0

您的代码打开'SQL注入';逃避输入或使用准备好的语句。 – Jite

+0

我已经阅读了一些sql注入页面,真相被告知我无法理解如何防止它。你能给我提供正确的代码吗? –

回答

2

使用您提供的SQL查询,不可能进行更新。您可以制作UPDATE ON DUPLICATE KEY,但这不在此查询中。请注意,您不必为自动设置的参数指定任何值(AUTO_INCREMENT)。

+0

您在'reports'表中没有名为'id_type'的行。 – hanshenrik

+0

@Adnan:索引'id_type'没有在'$ _POST'数组中定义。 – Richard

+0

@hanshenrik:错了。这,你只能看到一个MySQL错误消息,这是没有提供。 – Richard