Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 默认为某个值的数据库字段_Php_Sql_Forms - Fatal编程技术网

Php 默认为某个值的数据库字段

Php 默认为某个值的数据库字段,php,sql,forms,Php,Sql,Forms,我有一个表单,允许我向数据库中添加用户 当我添加新记录并输入每个字段的数据并提交时,它会成功地将数据添加到数据库中 但是,当我尝试更新特定记录并按submit时,我的memberID字段会自动设置一个值,我不确定它可能来自何处(请参见此处) 我已经查看了所有代码,似乎找不到导致它的原因 在第一次更新后尝试更新或删除记录时,我收到以下错误消息:() 添加代码 <!DOCTYPE html> <html> <head><title>Insert Use

我有一个表单,允许我向数据库中添加用户

当我添加新记录并输入每个字段的数据并提交时,它会成功地将数据添加到数据库中

但是,当我尝试更新特定记录并按submit时,我的memberID字段会自动设置一个值,我不确定它可能来自何处(请参见此处)

我已经查看了所有代码,似乎找不到导致它的原因

在第一次更新后尝试更新或删除记录时,我收到以下错误消息:()

添加代码

<!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数据类型的主题:例如,和,谢谢。。像这样的小事太令人沮丧了