【问题标题】:How to add data to mysql by url如何通过url向mysql添加数据
【发布时间】:2023-04-03 11:55:01
【问题描述】:

这里是php的新手,基本上我想知道如何使用url手动将数据添加到我的mysql表中。

例如,假设我有一个名为 users 的表,其中包含 3 个字段,分别名为“ID”、“用户名”和“密码”。我希望像这样向表中添加数据:

http://localhost/register.php?id=1@username=bob@password=123@act=register(我不确定这是否完全正确)但是是这样的。

任何有关如何执行此操作的帮助将不胜感激!

【问题讨论】:

  • 不要使用 HTTP GET 来更改数据。请改用 POST。
  • 我不确定这是否能回答我的问题:S 你到底是什么意思?我不是在尝试更改数据,而是在尝试使用 url 添加数据,就像我发布的示例一样。
  • 是的,这不是答案,答案将在底部区域。它只是建议遵循标准做法。 GET 应该是幂等的,这意味着您可以一遍又一遍地执行相同的操作而不会产生任何副作用。想象一下,在不影响数据库状态的情况下,使用相同的数据执行 10 倍的操作。
  • 请在实施此解决方案之前研究 SQL 注入攻击。以后你会感谢我的。
  • @wes 实际上,如果他这样做了,那么他永远不会感谢你,因为他永远不会被黑客入侵,也不知道他会不会被黑客入侵。另一方面,如果他因为不听从你的建议而被拥有,他会希望他以后拥有...... :)

标签: php mysql url


【解决方案1】:
mysql_connect('localhost', 'mysql_user', 'mysql_password');

mysql_select_db('database');

mysql_query("INSERT INTO table (id, username, password) VALUES ('".mysql_real_escape_string($_GET['id'])."', '".mysql_real_escape_string($_GET['username'])."', '".mysql_real_escape_string($_GET['password'])."')");

【讨论】:

  • 谢谢!这正是我想要的。 :)
【解决方案2】:

$query = "insert into users (username, password) values ('".$_GET['username']."','".$_GET['password']."'";

那就是根据act参数插入一个用户。

此外,get 上的参数通常由“&”分隔,而不是“@”。

【讨论】:

  • 当我成功插入数据时,我该如何返回提交的 id 并打印出来??
【解决方案3】:

首先,如果您要保存大数据,最好使用 POST,而不是 GET。但是如果你真的需要通过 URL 向服务器发送数据,你的 URL 应该改变如下:

你应该用'&'代替'@'

http://localhost/register.php?id=1&username=bob&password=123&act=register

在服务器端,您可以通过以下方式检索数据:

$id = mysql_real_escape_string($_GET['id']);

$username = mysql_real_escape_string($_GET['username']); $password = mysql_real_escape_string($_GET['password']);

$sql = mysql_query('INSERT INTO table_name (id, username, password) VALUES ('.$id.', '.$username.', '.$password.'); 如果(!$sql){ 回声“错误”。 mysql_error(); }别的{ 回声“成功”; }

【讨论】:

    【解决方案4】:

    使用

    $id  = $_REQUEST['id'];
    $username = $_REQUEST['username'];
    $password = $_REQUEST['password'];
    $act   = $_REQUEST['act'];
    

    从 url 获取值

    然后是通常的 MySQL

    插入查询

    参考

    http://dev.mysql.com/doc/refman/5.5/en/insert.html

    【讨论】:

    • +1 是的,$_REQUEST 将拉取 POST 或 GET,第 3 行和第 4 行有一个额外的“=”,虽然 :)
    • 感谢通知...输入错误
    • 如果我们知道$_REQUEST 正好在$_POST 中,为什么还要从$_REQUEST 中检索?
    • 因为如果您更改了输入法,您将不必更改您的 $_POST 或 $_GETs 代码,这为代码提供了一些灵活性。看起来 OP 并没有使用 $_POST,但他正在使用 $_GET。任何说 GET 不如 POST 安全的人都没有意识到您可以像 GET 一样轻松地模拟 POST 参数(使用许多不同的方法)。无论使用什么输入法,您都应该采取适当的措施来清理输入。
    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 2014-10-07
    • 1970-01-01
    • 2021-02-08
    • 2011-07-15
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多