我写的代码原来是这样的(代码可能有点垃圾勿喷):
<?php
include("config.php");
if(!empty($_POST['username'])){
include("header.php");
$row=mysqli_connect($DB_HOST, $DB_USER,$DB_PASSWORD,$DB_NAME) //选择数据库之前需要先连接数据库服务器
or die("数据库服务器连接失败");
$bob=mysqli_select_db($row,$DB_NAME)
or die("error".DB_NAME."连接失败");
//获取用户输入
$username = $_POST['username'];
$passcode = $_POST['passcode'];
//执行SQL语句
if($username==''){
echo "用户名不能为空";
exit;
}
if($passcode==''){
echo "密码不能为空";
exit;
}
$query = mysqli_query($row,"select username, userflag from users "
."where username = '$username'")
or die("SQL语句执行失败");
if($row = mysqli_fetch_array($query)){
echo "用户已存在";
include("footer.php");
exit;
}else{
@mysqli_query($row,"INSERT INTO users (username, passcode, userflag) VALUES ('$username', '$passcode', '0')")
or die("创建用户执行失败");
echo "恭喜你创建用户成功,用户名:".$_POST['username']."<br/>";
for($i=0;$i<strlen($_POST['passcode']);$i++){
echo "*";
}
include("footer.php");
exit;
}
}else{
include("header.php");
}
?>
...
找了半天,我把
@mysqli_query($row,"INSERT INTO users (username, passcode, userflag) VALUES ('$username', '$passcode', '0')") or die("创建用户执行失败");
这一段代码前面的@符号去掉然后报错误时发现是$row为空的问题,发现把==写成=了。
一般出错很少是编程语言的问题是自己没有写对代码或者没有配置好环境,只要细心解决错误就好了