我是新来的,编程新手。 我创建了一个可以更改数据库列的脚本,但现在我想从用户获取数据库登录信息,并在用户正确提供所有信息时从用户更改值,脚本更改了用户提供的数据库列信息。
这是我的login.html源代码:
<html>
<center>
<form action="db.php" method="post">
DB Host: <input type="text" name="host"><br>
DB Username: <input type="text" name="usr"><br>
DB Password: <input type="password" name="psw"><br>
DB Name: <input type="text" name="dbname"><br><br><br>
Admin changed Username: <input type="text" name="admusr"><br>
Admin Changed Password: <input type="password" name="admpsw"><br>
<input type="submit">
</form>
</center>
</html>
这是我的 db.php 源代码,可以手动更新数据库列信息
<?php
$servername = "localhost";
$username = "admin";
$dbname = "mydb";
$password = "1234";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
mysqli_select_db($conn,"$dbname");
$sql = "UPDATE admins SET user_login='admin1',user_pass='1234' WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
是否可以从用户的值中获取值并更改数据库列信息? 抱歉英语不好。
最佳答案
这是一个非常糟糕的主意...大量的安全问题。但是,如果您想从收到的表单值更改它,只需将您的查询更改为:
// escape received values
$usr = $conn->real_escape_string($_POST['usr']);
$psw = $conn->real_escape_string($_POST['psw']);
// use them in query
$sql = "UPDATE admins SET user_login='".$usr."',user_pass='".$psw."' WHERE id=1";
您有更多由用户填写的字段...我不知道您的确切表结构。但如果您想使用所有这些,只需将收到的转义值添加到您的查询中即可:
// escape received values
$usr = $conn->real_escape_string($_POST['usr']);
$psw = $conn->real_escape_string($_POST['psw']);
$host = $conn->real_escape_string($_POST['host']);
$dbname = $conn->real_escape_string($_POST['dbname']);
$admusr = $conn->real_escape_string($_POST['admusr']);
$admpsw = $conn->real_escape_string($_POST['admpsw']);
// use all of them in query depending on your table structure
$sql = "UPDATE admins SET user_login='".$usr."',user_pass='".$psw."' WHERE id=1";
关于php - 从用户获取数据库用户、密码、名称和主机信息并想要更新数据库列信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28964447/