【发布时间】:2020-04-09 03:24:27
【问题描述】:
我正在尝试将数据插入到我的数据库中,但由于某种原因它无法正常工作。提交表单时,我不断收到以下错误:Error: INSERT INTO voorwerpenlijst (beschrijving, waar, wanneer, ophalen) VALUES ('value', 'value ', '值', '值') 拒绝用户 'id11961846_profielwerkstuk'@'%' 访问数据库 'voorwerpenlijst'。当我省略 $sql 部分时,我可以很好地连接到数据库,因此登录凭据是正确的。我在自己的 PC 上使用 XAMPP 和 phpmyadmin 运行了相同的 PHP,它工作得很好。这证实了我的代码应该没问题,但它仍然不能与 000webhost 一起使用。我正在使用通过 000webhosting 获得的数据库,它不允许我更改 phpmyadmin 中的任何权限。我尝试使用的任何 sql 语句都会被阻止。 提前致谢
<html lang="nl">
<meta charset = "utf-8">
<head>
<link rel="stylesheet" href="profielwerkstukSTYLE.css">
<ul>
<li><a href="index.html">Home</a></li>
<li><a class="active" href="upload.php">upload voorwerp</a></li>
<li><a href="voorwerpenlijst.html">voorwerp lijst</a></li>
</ul>
</head>
<body>
<h3>Upload het door u gevonden voorwerp<h3><br>
<div>
<form action="upload.php" method="post" enctype="multipart/form-data">
Beschrijving:<br> <input type="text" name="beschrijving" placeholder="bijv. jas, airpods, sleutels etc."><br>
Waar:<br> <input type="text" name="waar" placeholder="bijv. lokaal 117"><br>
Wanneer:<br> <input type="text" name="wanneer" placeholder="bijv. 5e uur"><br>
ophalen waar:<br> <input type="text" name="ophalen" placeholder="bijv. bij de balie"><br>
<input type="submit" value="verzend" name="knop">
</form>
<div>
<?php
if(
isset($_POST["beschrijving"])&& $_POST["beschrijving"]!="" &&
isset($_POST["waar"]) && $_POST["waar"]!="" &&
isset($_POST["wanneer"]) && $_POST["wanneer"]!="" &&
isset($_POST["ophalen"]) && $_POST["ophalen"]!="")
{
$host="localhost";
$username="id11961846_profielwerkstuk";
$password="12345";
$dbname="voorwerpenlijst";
$conn= mysqli_connect("$host", "$username", "$password", "$dbname");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$beschrijving=$_POST["beschrijving"];
$waar=$_POST["waar"];
$wanneer=$_POST["wanneer"];
$ophalen=$_POST["ophalen"];
$sql = "INSERT INTO voorwerpenlijst (beschrijving, waar, wanneer, ophalen)
VALUES ('$beschrijving', '$waar', '$wanneer', '$ophalen')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
else
{
if(isset($_POST["knop"]))
{
print("Vul A.U.B alles in");
}
}
?>
</body>
</html>
【问题讨论】:
-
只需授予用户权限参见dev.mysql.com/doc/refman/8.0/en/grant.html 或使用具有权限的用户
-
通过 000webhosting 使用 phpmyadmin 时,我不能更改任何权限或用户。当我运行 sql 它只是说“访问被拒绝用户:'id11961846_profielwerkstuk'@'%' 到数据库'id11961846_voorwerpenlijst'
-
您必须以 root 身份登录并授予链接中描述的权限。
-
我不确定我是否能够。据我所知,您从 000webhosting 获得的用户名是您可以登录的唯一用户名
-
然后联系支持,他们犯了一个错误,没有授予权限。并请检查答案,因为sql注入stackoverflow.com/questions/60174/…
标签: php mysql database error-handling sql-insert