Php 更新查询应该添加什么
我想授予用户更改用户类型的权限,使其成为管理员或基本用户,这是我使用的代码: 第一页:Php 更新查询应该添加什么,php,html,sql,Php,Html,Sql,我想授予用户更改用户类型的权限,使其成为管理员或基本用户,这是我使用的代码: 第一页: echo "<p>please type the employee ID</p><input type='number' name='id'>"; echo "<p> Change to: </p><select name='usertype'> <option>Admin</option>
echo "<p>please type the employee ID</p><input type='number' name='id'>";
echo "<p> Change to: </p><select name='usertype'>
<option>Admin</option>
<option>Basic User</option>
</select>";
但是,当我检查数据库时,没有任何更新,有人能告诉我我缺少了什么吗请您从不执行查询您需要使用
query()
或mysqli\u query()执行查询代码>
那么你的代码应该是
<?php
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$sql="UPDATE `sap` SET `UserType`='$usertype' WHERE `ID`='$empID'";
$run = $conn->query($sql);
if($run){
echo "data updated";
}else{
echo "error". $conn->error;
}
?>
或者使用PDO
<?php
$host = '';
$db = '';
$user = '';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dbh = new PDO($dsn, $user, $pass, $opt);
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$sql="UPDATE `sap` SET `UserType`= ? WHERE `ID`= ? ";
$stmt = $dbh->prepare($sql);
if($stmt->execute(array($usertype,$empID))){
echo "data updated";
}
?>
在你的问题中,你有很多遗漏。正因为如此,我决定编写完整的示例代码,您可以看到所有遗漏。
以下是工作解决方案:
<?php
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$pdo = new PDO('mysql:host=localhost;dbname=db8', "root", "");
$stmt = $pdo->prepare("UPDATE `table1` SET `UserType`= ? WHERE `ID`= ?");
$stmt->execute([$usertype, $empID]);
echo "<form action='' method='post'>";
echo "<p>please type the employee ID</p><input type='number' name='id'>";
echo "<p> Change to: </p><select name='usertype'>
<option>Admin</option>
<option>Basic User</option>
</select>";
echo "<input type='submit' value='submit'>";
?>
您收到任何错误?您是否执行了查询(我看不到执行代码)?您没有执行查询。您刚刚构建了一个字符串。还请注意,您构建要执行的SQL字符串的方式将导致SQL注入问题。您需要执行查询此代码不执行查询您必须有一些事情要做让我知道在php文件中写入print\r($\u POST);死亡并显示您在响应中得到了什么我完全忘了添加此项,谢谢!不鼓励只使用代码的答案。解释你做了什么。不鼓励只回答代码。解释你做了什么。
<?php
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$sql="UPDATE `sap` SET `UserType`= ? WHERE `ID`= ? ";
$run = $conn->prepare($sql);
$run->bindParam("si",$usertype,$empID)
if($run->execute()){
echo "data updated";
}else{
echo "error". $conn->error;
}
?>
<?php
$host = '';
$db = '';
$user = '';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dbh = new PDO($dsn, $user, $pass, $opt);
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$sql="UPDATE `sap` SET `UserType`= ? WHERE `ID`= ? ";
$stmt = $dbh->prepare($sql);
if($stmt->execute(array($usertype,$empID))){
echo "data updated";
}
?>
<?php
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$pdo = new PDO('mysql:host=localhost;dbname=db8', "root", "");
$stmt = $pdo->prepare("UPDATE `table1` SET `UserType`= ? WHERE `ID`= ?");
$stmt->execute([$usertype, $empID]);
echo "<form action='' method='post'>";
echo "<p>please type the employee ID</p><input type='number' name='id'>";
echo "<p> Change to: </p><select name='usertype'>
<option>Admin</option>
<option>Basic User</option>
</select>";
echo "<input type='submit' value='submit'>";
?>
$host='localhost';
$username = 'root';
$pass = '';// your db password
$database = 'your db name'; // set here your db name.
$connection = new mysqli($host,$username,$pass,$database);// for db connection.
// but db connection is missed here.
if(isset($_POST['usertype'])){
$usertype= $_POST['usertype'];
$empID= $_POST['id'];
$sql ="UPDATE `sap` SET `UserType`='$usertype' WHERE ID ='$empID'";
$result = $connection->query($sql);// it is missed in your code.
if($result){
echo 'record updated successfully';
}else{
echo ' error------------- ';
}
}