簡體   English   中英

MYSQL PHP插入表

[英]MYSQL PHP inserting into table

<?php
$conn= new mysqli("localhost", "my_user", "my_password", "world"); //changed for the sake of this question

$username = $_POST['Username'];
$password = sha1($_POST['Password']);
$email = $_POST['Email'];
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';

$result = $conn->query($insert);

?>
<form method='post' action='regprocess.php'>
<fieldset class="register">
<h2>Register</h2>
<ul>
    <li><label for="FirstName">First Name: </label> <input type="text" name="FirstName" id="FirstName"></li>
    <li><label for="LastName">Last Name: </label> <input type="text" name="LastName" id="LastName"></li>
    <li><label for="Email">Email: </label><input type="email" name="Email" id="Email"></li>
    <li><label for="Username">Username: </label><input type="text" name="Username" id="Username"></li>
    <li><label for="Password">Password: </label><input type="password" name="Password" id="Password"></li>
    <li><input type="submit" value="Register"></li>
</ul>
</fieldset></form>

表單和最上面的sql代碼位於單獨的文件中。

大家好,我正嘗試插入mysql表中,而不會插入到我的表中。 我正在嘗試使其通過注冊表插入。 而且我不太確定為什么它不起作用。 一些見識會很棒。 如果您需要我提供桌子,我會提供,但我不認為這是無法使用的部分原因。

使用mysqli是一件好事,但使用不正確,會使自己暴露於許多非常嚴重的SQL注入錯誤中,其后果可能很嚴重。

這是您要實際解決示例中存在的眾多問題時應采取的措施:

$stmt = $conn->prepare('INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES (?,?,?,?,?,?)');

$stmt->bind_param($firstname, $lastname, $email, $username, $password, 'User');
$stmt->execute();

$result = $stmt->get_result();

占位符的主要優點是不必擔心如何正確引用數據,它會自動為您完成。 它還在很大程度上避免了在語句中使用兩種不同類型的引號。

如果您不對SQL中放入的ANYALL數據使用占位符,則可能會遇到嚴重的麻煩。 您必須對此保持警惕。

您的最后一個參數值用單引號引起來。 替換為雙引號,使其讀為...“'。$ password。'”,“ User”);';

我不懂PHP。 我會盡力幫助您使用MySQL。

我認為插入查詢中的引號有問題。

嘗試從values子句中刪除單引號。

作為建議,請在sql查詢文本的開頭到結尾始終使用“;

$insert = 'INSERT INTO User(FirstName, LastName, Email, Username, Password, Type) VALUES ("'.$firstname.'", "'.$lastname.'", "'.$email.'", "'.$username.'", "'.$password.'", 'User');';

像這樣說:

$insert = "INSERT INTO User(`FirstName`, `LastName`, `Email`, `Username`, `Password`, `Type`) VALUES ('$firstname', '$lastname', '$email', '$username', '$password', 'User');";

在您的查詢中,您擁有“用戶”,並且需要將“ as”轉義

並且不要忘記在將內容添加到數據庫之前總是對其進行清理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM