[英]storing data to mysql database using php
my code wont insert into the student table I dont know whats wrong could you guys possibly help? 我的代码不会插入到学生表中,我不知道你们可能有什么问题吗? I tried to print and error message in each line to find out where the error was but I got no errors so I'm confused 我尝试在每一行中打印并显示错误消息,以找出错误所在,但没有错误,因此感到困惑
<?PHP
if(isset($_POST['submit'])) {
$link = mysql_connect('localhost','root','');
if (!$link) {
die('Could not connect :' . mysql_error());
}
$Selected= mysql_select_db("elearningg", $link);
if (!$Selected) {
die("Could not connect: " . mysql_error());
}
$sql = "INSERT INTO student (FirstName, LastName, UserName,Password, confirmP ,phoneNum,Email) VALUES ('$_POST[FN]','$_POST[LN]','$_POST[userName]','$_POST[password]','$_POST[confirmPass]','$_POST[number]','$_POST[email]') ";
mysql_query($sql,$link);
mysql_close($link);
}
?>
and here's the html form: 这是html形式:
<form method="post" action="Register.php">
<div class="contact-to">
<P> <input name="FN" type="text" class="text" value="First name" >
<input name="LN" type="text" class="text" value="Last name" style="margin-left: 10px">
<input name="userName" type="text" class="text" value="username" style="margin-left: 10px">
</div>
<div class="contact-to">
<input name="password" type="text" class="text" value="Password" style="margin-left: 10px">
<input name="confirmPass" type="text" class="text" value="Confirm password" style="margin-left: 10px">
<input name="number" type="text" class="text" value="Phone Number" >
<input name="email" type="text" class="text" value="email" >
</div>
<div> <input value="submit" type="submit" class="submit"> </div>
</form>
If you're trying to validate $_POST['submit']
after user clicks the button, you should include attribute name
inside your input submit tag like this: 如果您在用户单击按钮后尝试验证$_POST['submit']
,则应在输入Submit标记中包含属性name
如下所示:
<input value="submit" type="submit" name="submit" class="submit">
And then you can check $_POST: 然后您可以检查$ _POST:
if(isset($_POST['submit'])) {
// your code
}
PHP will always return false in your condition without a attribute name... 在没有属性名称的情况下,PHP始终会返回false。
mysqli
with prepared statements , or PDO with prepared statements , they're much safer . 另外,考虑将mysqli
与预处理语句一起使用,或将PDO与预处理语句一起使用 , 它们会更安全 。 Change your sql insert query code to this: 将您的sql插入查询代码更改为此:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
function debug($data){
echo '<pre>';
print_r($data);
echo '</pre>';
}
function getConnected($host,$user,$pass,$db) {
$mysqli = new mysqli($host, $user, $pass, $db);
if($mysqli->connect_error)
die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
return $mysqli;
}
if(isset($_POST['submit'])) {
debug('Connecting database...');
$link = getConnected('localhost','root','', 'stackoverflow');
debug('Database connected...');
$sql = "
INSERT INTO `student` (`FirstName`, `LastName`, `UserName`, `Password`, `confirmP`, `phoneNum`, `Email`)
VALUES (
'{$_POST['FN']}',
'{$_POST['LN']}',
'{$_POST['userName']}',
'{$_POST['password']}',
'{$_POST['confirmPass']}',
'{$_POST['number']}',
'{$_POST['email']}'
)";
if (!mysqli_query($link, $sql)) {
debug("Errormessage: ". mysqli_error($link)."\n");
}else{
debug('Query executed successfully...');
}
mysqli_close($link);
}
?>
Also change your form submit button code to this: 还将表单提交按钮代码更改为此:
<div> <input name="submit" value="submit" type="submit" class="submit"> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.