首页 / PHP / php-无法将数据插入MySQL数据库
php-无法将数据插入MySQL数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-无法将数据插入MySQL数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4460字,纯文字阅读大概需要7分钟。
内容图文
![php-无法将数据插入MySQL数据库](/upload/InfoBanner/zyjiaocheng/882/54818389adca4ddfa16c4fa663859237.jpg)
所以我在这里有点问题.我正在尝试做一些非常基本的事情,即通过Apache localhost网站将数据存储到MySQL数据库中.在我的网站上发送数据后,它没有存储到数据库中.我将首先发布我的代码,然后为您提供更多信息:
标头中的代码:
<?php
$link=mysqli_connect("localhost","root","mypassword","database") or die("Couldn't connect to DB");
?>
码:
<?php include ( "./inc/header.inc.php" ); ?>
<?php
$reg = @$_POST['reg'];
// declaring variables to prevent errors
$fn = ""; // First Name
$ln = ""; // Last Name
$un = ""; // Username
$em = ""; // Email
$emc = ""; // Emailcheck
$pswd = ""; // Password
$pswdc = ""; // Passwordcheck
$d = ""; // Signup Date
$u_check = ""; // Check if username exists
// registration form
$fn = strip_tags(@$_POST['fname']);
$ln = strip_tags(@$_POST['lname']);
$un = strip_tags(@$_POST['username']);
$em = strip_tags(@$_POST['email']);
$emc = strip_tags(@$_POST['emailcheck']);
$pswd = strip_tags(@$_POST['password']);
$pswdc = strip_tags(@$_POST['passwordcheck']);
date_default_timezone_set('Europe/Berlin');
$d = date("Y-M-D"); // Year - Month - Day
if ($reg) {
// Check if emails are equal
if ($em==$emc) {
// Check if user already exists
$u_check = mysqli_query($link, "SELECT username FROM users WHERE username= '$un'");
// Count the amount of rows where username = $un
$check = mysqli_num_rows($u_check);
if ($check == 0) {
// Check all of the fields have been filled in
if ($fn&&$ln&&$un&&$em&&$emc&&$pswd&&$pswdc) {
// Check that passwords match
if ($pswd==$pswdc) {
// Check the max length of username/first name/last name does not exeed 25 characters
if (strlen($un)>25||strlen($fn)>25||strlen($ln)>25) {
echo "The maximum limit for username/first name/last name is 25 characters!";
} else {
// Check the max length of password does not exeed 25 characters and is not less than 5 characters
if (strlen($pswd)>30||strlen($pswd)<5) {
echo "Your password must be between 5 and 30 characters long. So should your ######!";
} else {
// encrypt password and passwordcheck using md5 before sending to database
$pswd = md5($pswd);
$pswdc = md5($pswdc);
$query = mysqli_query($link, "INSERT INTO users (id, username, first_name, last_name, email, password, sign_up_date, activated) VALUES ('','$un','$fn','$ln','$em','$pswd','$d','0')");
die("<h2>Welcome to #######</h2>Login to your account to get ######!");
}
}
} else {
echo "Your passwords don't match.";
}
} else {
echo "Please fill in all of the fields.";
}
} else {
echo "This Username already exists.";
}
} else {
echo "Your Emails don't match.";
}
}
?>
<div id="wrapper2">
<table>
<tr>
<td width="60%" valign="top">
<h2>Join ####### today!</h2>
</td>
<td width="40%" valign="top">
<h2>Sign up below.</h2>
<form action="#" method="POST">
<input type="text" name="fname" size="25" placeholder="First Name" /><br /><br />
<input type="text" name="lname" size="25" placeholder="Last Name" /><br /><br />
<input type="text" name="username" size="25" placeholder="User Name" /><br /><br />
<input type="text" name="email" size="25" placeholder="E-Mail" /><br /><br />
<input type="text" name="emailcheck" size="25" placeholder="E-Mail Check" /><br /><br />
<input type="text" name="password" size="25" placeholder="Password" /><br /><br />
<input type="text" name="passwordcheck" size="25" placeholder="Password Check" /><br /><br />
<input type="submit" name="reg" value="Sign Up!">
</form>
</td>
</tr>
</table>
<?php include ( "./inc/footer.inc.php" ); ?>
因此,与数据库的连接正在工作.我已经检查过了.数据已正确存储在变量中.我通过phpMyAdmin手动在数据库中插入了一个“ Test”用户名,如果我在网站中输入了相同的用户名,则代码会正确地从数据库中获取用户名并将其与输入进行比较(错误结果是“用户名已存在”) .就像我已经说过的,当我用数据正确填写表单时,代码会终止,但数据不会存储到数据库中.
这里是一些版本信息:
Apache / 2.4.16(Unix)PHP / 5.5.29
基本上使用本指南来设置Apache,PHP,MySQL,phpMyAdmin:
Guide for Mac OSX
我通过die(mysqli_error($link));检查错误,并得到以下响应:
Incorrect integer value: ” for column ‘id’ at row 1 ->Changed argument ” to NULL.
第二次错误检查给了我这个:
Incorrect date value: ‘2015-Nov-Wed’ for column ‘sign_up_date’ at row 1
NOW()方法可以解决问题.并且感谢您指出日期错误:应该是$d = date(“ Y-m-d”);
解决方法:
尝试这个:
INSERT INTO users (username, first_name, last_name, email, password, sign_up_date, activated) VALUES ('$un','$fn','$ln','$em','$pswd','$d','0')`
如果您的id列是自动递增,则无需您自己填写.
而对于您的日期,您可以检查此link以作为日期参考.日期结构化列需要YY-MM-DD格式,您可以通过以下方式获取:
$d = date("Y-m-d");
系统中的用户可以上传视频吗? :P
内容总结
以上是互联网集市为您收集整理的php-无法将数据插入MySQL数据库全部内容,希望文章能够帮你解决php-无法将数据插入MySQL数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。