我正在尝试将用户添加到数据库,但每当我尝试添加用户时,它表示用户已添加,但数据库显示没有新用户。 这是代码:
<form method="post" name="input" action="">
<label>StaffID:<br/> <input name="staffid" type="number"><br></label>
<label>Username:<br/> <input name="username" type="text" min="0"><br></label>
<label>Password:<br/> <input name="password" type="text" min="0"><br></label>
<input type="submit" name="submit" value="Add User">
</form>
<?php
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
if($SID !=''||$UN !=''||$PW !=''){
$sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
mysqli_query($conn, $sql);
echo "<br><br><span>User added successfully!</span>";
}
?>
我不知道我做错了什么,请帮助。
答案 0 :(得分:1)
<?php
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
if($SID !='' && $UN !='' && $PW !=''){
$sql = mysqli_prepare($conn, "INSERT INTO staffusers(username, password, staffid) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($sql, 'ssd', $UN, $PW, $SID);
if(mysqli_stmt_execute($sql)){
echo "<br><br><span>User added successfully!</span>";
}
}
?>
<强> 更改 强>
使用mysqli_prepare()&amp; mysqli_stmt_bind_param()来 执行查询。
将if($SID !=''||$UN !=''||$PW !=''){
更改为
if($SID !=''||$UN !=''||$PW !=''){
。
答案 1 :(得分:0)
<form method="post" name="input" action="">
<label>StaffID:<br/> <input name="staffid" type="number"><br></label>
<label>Username:<br/> <input name="username" type="text" min="0"><br></label>
<label>Password:<br/> <input name="password" type="text" min="0"><br></label>
<input type="submit" name="submit" value="Add User">
</form>
<?php
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
if($SID !='' && $UN !='' && $PW !=''){
$sql = "INSERT INTO staffusers(username, password, staffid) VALUES('$UN', '$PW', $SID)";
mysqli_query($conn, $sql);
echo "<br><br><span>User added successfully!</span>";
}
?>
您尝试在数据库中将字符串值作为整数插入。添加撇号将帮助您的MySQL语句将其作为字符串插入。
请耐心等待:如果您的一个或多个文本字段为空,则无法将$_POST
s分配给变量。因此它会遇到错误。
使用$_POST
检查isset()
。
我还在||
语句中将&&
替换为IF
。插入空值也可能会产生错误。
答案 2 :(得分:0)
在代码中包含正确的错误检查,然后您可以看到错误。您可以尝试使用此修改后的代码(源自您的上述代码:记住公开您的服务器详细信息将邀请黑客)...
<form method="post" name="input" action="">
<label>StaffID:<br/> <input name="staffid" type="number"><br></label>
<label>Username:<br/> <input name="username" type="text" min="0"><br></label>
<label>Password:<br/> <input name="password" type="text" min="0"><br></label>
<input type="submit" name="submit" value="Add User">
</form>
<?php
if(isset($_POST['submit'])){
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
//echo $SID.$UN.$PW;
if($SID !='' && $UN !='' && $PW !=''){
$con = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
$sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
mysqli_query($conn, $sql);
echo "<br><br><span>User added successfully!</span>";
}
}
}
?>
如果您在服务器上运行(在对 fdb14.awardspace.net 域地址移植的服务器具有远程SQL访问权限的服务器上),代码将起作用。 < / p>
但是如果您在localhost或其他服务器上运行代码,该服务器对 fdb14.awardspace.net 域地址所篡改的服务器具有远程SQL访问权限,则会收到此错误:警告: mysqli_connect():( HY000 / 2002):无法建立连接,因为目标计算机主动拒绝它。在第18行的C:\ Program Files(x86)\ EasyPHP-Devserver-16.1 \ eds-www \ remote-sql-test \ index.php中 无法连接到MySQL:无法建立连接,因为目标计算机主动拒绝它。
此错误不是来自您的代码,此错误与您的远程服务器设置相关(记住localhost也是服务器概念),您可能需要配置正确的远程SQL访问,有关远程SQL的更多详细信息,请参阅{{3 }}
答案 3 :(得分:0)
而不是
<?php
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
if($SID !=''||$UN !=''||$PW !=''){
$sql = "INSERT INTO staffusers(username, password, staffid) VALUES($UN, $PW, $SID)";
mysqli_query($conn, $sql);
echo "<br><br><span>User added successfully!</span>";
}
?>
使用此代码插入用户记录
<?php
if(isset($_POST['submit']))
{
$SID = $_POST['staffid'];
$UN = $_POST['username'];
$PW = $_POST['password'];
$conn = mysqli_connect("fdb14.awardspace.net", "2219658_ashtonb", "dojustly01", "2219658_ashtonb");
if($SID !=''||$UN !=''||$PW !=''){
$sql = "INSERT INTO staffusers(username, password, staffid) VALUES('".$UN."','".$PW."','".$SID."')";
$result=mysqli_query($conn, $sql);
if(!$result)
{
echo "<br><br><span>not Inserted!</span>";
}
else
{
echo "<br><br><span>User added successfully!</span>";
}
}
}
?>