【问题标题】:Trying to put data in mysql database using get results in strange errors尝试使用 get 将数据放入 mysql 数据库会导致奇怪的错误
【发布时间】:2018-03-28 18:33:25
【问题描述】:

我正在尝试使用 php GET 方法将数据添加到我的 mysql 数据库中。 尽管出于测试目的打开 url 时会出现奇怪的错误。

这是我的代码:

<?php
$servername = "bernd-mysql.php-friends.de";
$username = "521_admin";
$password = "*****";
$dbname = "521_rfid_test";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
echo "<br/>";

$var1=$_GET["value1"];
$var2=$_GET["value2"];

echo $var1;
echo "<br/>";
echo $var2;
echo "<br/>";

$query = "INSERT INTO `accounts` (`id`, `firstName`)
VALUES ('".$var1."','".$var2."')";

if (mysqli_query($conn, $query)) {
    echo "New record created successfully" . "<br />";
} else {
    echo "Error: " . $query . "<br>" . mysqli_error($conn);
}
#mysql_query($query,$conn);
mysql_close($conn);
?>

当我打开带有 ?value1=00001&value2=9999 的 url 时,我得到以下输出。

连接成功
00001
9999
错误:插入帐户(id,firstName)值('00001','9999') $查询,$conn); mysql_close($conn); ?>

我对 php 和 mysql 还很陌生,所以请多多包涵:)

【问题讨论】:

  • 使用 mysqli_close($conn); 代替 mysql_close($conn);
  • idfirstName是什么数据类型?如果您考虑过部署您的应用程序,请先阅读 SQL 注入。
  • 危险:你很容易受到SQL injection attacks的影响,你需要defend你自己。
  • 当您与mysqli 连接时,您必须使用mysqli 而不是mysql 关闭连接..
  • 您也不应该使用最后的 php 结束标记 (?&gt;)。这不是必需的,可能会导致很多问题。只需在文件末尾删除它即可。

标签: php mysql post get


【解决方案1】:

这可能是因为您的字段“id”在您的数据库中是整数类型,如果是这种情况,您不应该在 VALUES 中为它添加逗号,并且始终将其转换为整数,如下所示:

$query = "插入accounts (id, firstName) 值 (".(int)$var1.",'".$var2."')";

【讨论】:

  • 不!这甚至使事情变得更糟,考虑到应该永远将客户端提供的数据放在使用字符串连接的 sql 查询中。另请阅读@Quentin 在该问题下发布的评论。
  • 是的,我知道这绝对不安全,我只是在回答这个上下文中的 sql 错误。
  • 您指出的细节可能导致所描述问题的唯一情况是确切地是对 sql 注入的描述。那么在这一点上刻意保持沉默有什么意义呢?
  • “我知道我卖给你的这个产品会烧毁你的房子,但它也会杀死那些讨厌的臭虫。”
  • 他只问了为什么会出现 sql 错误,我告诉他可能是什么原因。他还说他是初学者,所以我认为在他只想让他的 php 工作时谈论安全性有点过头了。
猜你喜欢
  • 1970-01-01
  • 2021-04-16
  • 2017-09-16
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 2014-06-10
  • 2017-06-03
  • 1970-01-01
相关资源
最近更新 更多