通过GET插入数据

时间:2016-09-02 00:37:12

标签: php mysql

我希望在我的sql中通过GET插入数据,但我无法插入数据

<?php

include("config.php");

$f=$_GET["first_name"];
$l=$_GET["last_name"];
$e=$_GET["email"];
$m=$_GET["mobile"];
$b=$_GET["birthday"];
$g=$_GET["gender"];



$insert="INSERT INTO user ( `first_name`, `last_name`, `email`, `mobile`, `birthday`, `gender`)
VALUES ('$f', '$l', '$e', '$m', '$b', '$g')";
mysqli_query($insert);



?>

我尝试通过此链接插入数据:

  

http://localhost:8888/restfull/insert.php?f=hayoo

1 个答案:

答案 0 :(得分:1)

自从我使用mysqli以来,很长一段时间,下面的代码很可能会运行。正如其他人所提到的那样,永远不要绑定未经过数据处理的数据(即使你认为你信任数据,它仍然可以安全地使用准备好的语句)。

<?php
//Create you db connection 
$conn = new mysqli('server', 'user', 'password', 'databasename');
//Create insert statement. Never concat un-sanitized data in statements 
$insert="INSERT INTO user ( `first_name`, `last_name`, `email`, `mobile`, `birthday`, `gender`)
VALUES (?, ?, ?, ?, ?, ?)";


$stmt = $conn->prepare($sql);

//Values corespond to ? except the first param which represents format of expected data. "s" stands for string
$stmt->bind_param(
    'ssssss', 
     $_GET["first_name"], 
     $_GET["last_name"],
     $_GET["email"],
     $_GET["mobile"],
     $_GET["birthday"],
     $_GET["gender"]
);
$stmt->execute();

您的网址如下所示: http://localhost:8888/restfull/insert.php?first_name=john&last_name=Doe&email=test@test.com&mobile=0&birthday=May&gender=male

确保你是否将上面的url放在某种类型的表单中,你正确地对url编码值(我注意到你收集的很多值都需要斜杠等)。