Maison > Article > développement back-end > php通过url传递参数后同时向数据库写入两条相同记录
我通过a.php页面通过url向b.php页面传递了两个参数,并通过b.php页面向mysql数据库写入传递的这两个参数,为什么在数据库中增添了两条相同的记录,但如果不传参数就正常写入一天记录,改为传递一个参数也会写入两个相同的记录,这是写入记录的代码:
<?phpheader("Content-Type:text/html; charset=utf-8");include('MY_PHP_file/mysql_connect.php');$sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES ({$_GET['user_id']}, {$_GET['relation_id']}, now())";// $sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES (0, 9, now())";if(mysql_query($sql));echo '<script>alert(\'操作成功!!\'); location.href=\'user_action.php\';</script>';// else// echo '<script>alert("操作失败,请重试!!"); location.href="user_action.php";</script>';?>
你不是说搞定了吗?
按照你的 sql 指令串
$sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES ({$_GET['user_id']}, {$_GET['relation_id']}, now())";
当不传递参数时实际执行的是
INSERT INTO user_action (user_id, relation_id, concern_time) VALUES (, , now())
这是错误的指令,不可能有数据插入
但你却说“如果不传参数就正常写入一条记录”,显然这条记录是在其他地方插入的
你的代码不止这一点吧,可能受其他地方影响了。
你不是说搞定了吗?
按照你的 sql 指令串
$sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES ({$_GET['user_id']}, {$_GET['relation_id']}, now())";
当不传递参数时实际执行的是
INSERT INTO user_action (user_id, relation_id, concern_time) VALUES (, , now())
这是错误的指令,不可能有数据插入
但你却说“如果不传参数就正常写入一条记录”,显然这条记录是在其他地方插入的
你不是说搞定了吗?
按照你的 sql 指令串
$sql = "INSERT INTO user_action (user_id, relation_id, concern_time) VALUES ({$_GET['user_id']}, {$_GET['relation_id']}, now())";
当不传递参数时实际执行的是
INSERT INTO user_action (user_id, relation_id, concern_time) VALUES (, , now())
这是错误的指令,不可能有数据插入
但你却说“如果不传参数就正常写入一条记录”,显然这条记录是在其他地方插入的
我通过a.php页面通过url向b.php页面传递了两个参数,并通过b.php页面向mysql数据库写入传递的这两个参数
先直接调用b.php 看看是否插入两条记录。
如果b.php正常,则问题在a.php,反之亦然。
只看你提供的代码,是不会插入两条记录,因为只有一条insert语句。
楼主你看下从a页面到b页面的请求头是不是有Referer信息,这个可能会造成重复发送语句的问题。再试试直接在地址栏输入b页面地址带上参数看看会不会写入相同的数据