Php 默认为某个值的数据库字段
我有一个表单,允许我向数据库中添加用户 当我添加新记录并输入每个字段的数据并提交时,它会成功地将数据添加到数据库中 但是,当我尝试更新特定记录并按submit时,我的memberID字段会自动设置一个值,我不确定它可能来自何处(请参见此处) 我已经查看了所有代码,似乎找不到导致它的原因 在第一次更新后尝试更新或删除记录时,我收到以下错误消息:() 添加代码Php 默认为某个值的数据库字段,php,sql,forms,Php,Sql,Forms,我有一个表单,允许我向数据库中添加用户 当我添加新记录并输入每个字段的数据并提交时,它会成功地将数据添加到数据库中 但是,当我尝试更新特定记录并按submit时,我的memberID字段会自动设置一个值,我不确定它可能来自何处(请参见此处) 我已经查看了所有代码,似乎找不到导致它的原因 在第一次更新后尝试更新或删除记录时,我收到以下错误消息:() 添加代码 <!DOCTYPE html> <html> <head><title>Insert Use
<!DOCTYPE html>
<html>
<head><title>Insert Users</title></head>
<body>
<h2>Insert User Confirmation</h2>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br>
<?php
include('connection.php');
echo "<label for='memberID' >Member ID:</label>";
echo "<input type='text' name='memberID' id='memberID' />";
echo "<br /><br />";
echo "<label for='username' >Username:</label>";
echo "<input type='text' name='username' id='username' />";
echo "<br /><br />";
echo "<label for='password' >Password:</label>";
echo "<input type='password' name='password' id='password' />";
echo "<br /><br />";
echo "<label for='fName' >Firstname:</label>";
echo "<input type='text' name='fName' id='fName' />";
echo "<br /><br />";
echo "<label for='lName' >Lastname:</label>";
echo "<input type='text' name='lName' id='lName' />";
echo "<br /><br />";
echo "<label for='address' >Address:</label>";
echo "<input type='text' name='address' id='address' />";
echo "<br /><br />";
echo "<label for='email' >Email:</label>";
echo "<input type='text' name='email' id='email' />";
echo "<br /><br />";
echo "<input type='submit' name='submit' value='Submit' />";
echo "<input type='reset' value='Clear' />";
echo "<br /><br />";
?>
</form>
</section>
<a href="home.php">Back Home</a><br/>
<?php
if(!isset($_POST['submit'])) {
echo 'Please Register';
}
else {
$memberID = $_POST['memberID'];
$username = $_POST['username'];
$password = $_POST['password'];
$fName = $_POST['fName'];
$lName = $_POST['lName'];
$address = $_POST['address'];
$email = $_POST['email'];
$query = "INSERT INTO `members` (memberID, username, password, firstname, lastName, address, email)
VALUES ('$memberID', '$username', '$password', '$fName', '$lName', '$address', '$email')";
mysqli_query($connection, $query)
or die(mysqli_error($connection));
$rc = mysqli_affected_rows($connection);
if ($rc==1)
{
echo '<h4>The database has been updated with the following details: </h4> ';
echo 'MemberID: '.$memberID.'<br />';
echo 'Username: '.$username.'<br />';
echo 'Password: '.$password.'<br />';
echo 'First Name: '.$fName.'<br />';
echo 'Last Name: '.$lName.'<br />';
echo 'Address: '.$address.'<br />';
echo 'Email: '.$email.'<br />';
}
else
{
echo '<p>The data was not entered into the database this time.</p>';
}
}
?>
</body>
</html>
<?php
require_once('connection.php');
$query = 'select * from members order by memberID';
include('includes/query.php');
echo '<table>';
echo '<tr>';
echo ' <th>MemberID</th>
<th>Username </th>
<th>Password</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
<th>Address</th>';
echo '</tr>';
foreach ($rows as $row)
{
echo '<tr>';
echo '<td>' . $row['memberID'] . '</td>';
echo '<td>' . $row['username'] . '</td>';
echo '<td>' . $row['password'] . '</td>';
echo '<td>' . $row['firstname'] . '</td>';
echo '<td>' . $row['lastname'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '<td>' . $row['address'] . '</td>';
echo '<td> <a href="confirm_delete.php?memberID=' . $row['memberID'] . '">Delete</a> </td>';
echo '<td> <a href="update_member_form.php?memberID=' . $row['memberID'] . '">Update</a> </td>';
echo '</tr>';
}
echo '</table>';
?>
<?php
require_once('connection.php');
if(!isset($_POST['submit'])) {
echo "Unauthorised access";
}
else {
$memberID = $_POST['memberID'];
$username = $_POST['username'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$address = $_POST['address'];
$query = "update members set memberID = '#memberID', username = '$username', password = '$password',
firstname = '$firstname', lastname = '$lastname', email = '$email', address = '$address' where memberID = '$memberID'";
$result = mysqli_query($connection, $query)
or die (mysqli_error($connection));
$rc = mysqli_affected_rows($connection);
if($rc == 1)
{
echo "<p>You have successfully updated memberID: {$memberID} account details</p>";
echo "<p><a href='view_records.php'>Back to User List</a> </p>";
}
else
{
echo "<p>No changes made.</p>";
echo "<p><a href='view_records.php'>Back to User List</a> </p>";
}
}
?>
<?php
require_once('connection.php');
$memberID = $_GET['memberID'];
$query = "delete from members where memberID = '$memberID';";
$result = mysqli_query($connection, $query)
or die (mysqli_error($connection));
$rc = mysqli_affected_rows($connection);
if($rc == 1)
{
echo "<p>You have successfully removed MemberID: {$memberID} from the database</p>";
echo "<a href='list_delete_update_users.php'>Back to User List</a>";
}
else
{
echo "<p>No record deleted</p>";
echo "<a href='view_records.php'>Back to User List</a>";
}
?>
插入用户
插入用户确认
添加和删除与您的问题无关,因此您可以将其留在后面。查看查询:“set memberID=”#memberID'”。这是你的问题。此外,如何将文本插入单元格中?我假定该列应该类似于无符号int
最后,看看参数化查询我认为这是因为您的更新查询。正确检查一次,它具有以下特征
$query = "update members set memberID = '#memberID', username = '$username', password = '$password',
firstname = '$firstname', lastname = '$lastname', email = '$email', address = '$address' where memberID = '$memberID'";
请注意,您正在将memberID='#memberID'-我认为您应该将memberID='$memberID'放在那里。请参见更新代码中的这一行:
$query = "update members set memberID = '#memberID', username = '$username', password = '$password',
firstname = '$firstname', lastname = '$lastname', email = '$email', address = '$address' where memberID = '$memberID'";
解决方案:
您通过$memberID中的post获得变量,但在更新时使用的是#memberID。这可能是您的问题之一。好吧,您自己在做,请查看此处的打字错误:$query=“更新成员集成员ID=”#成员ID',
所有我的表数据类型都设置为varchar@MatthewCampana甚至memberID字段?请不要将varchar用作主键。是成员id设置为varchar。最好的数据类型是什么?请阅读有关sql数据类型的主题:例如,和,谢谢。。像这样的小事太令人沮丧了