我正在创建一个注册页面。 我的代码在内部网上运行得很好,但现在,5年后我必须使用MySQL i。
我使用外部PHP文件dblogin.php
连接到数据库会发生什么<?php
$connection = mysqli_connect('mywebhost','username','password','db');
?>
这个位工作正常,因为登录系统使用它。
然后是我的注册系统。 自从我用PHP编写代码以来已经有一段时间了,现在主要使用Wordpress。
<?php
include 'dblogin.php';
if(isset($_GET['i'])){
if($_GET['i'] == '1'){ //if we want to insert a new user
$tblName="tblUsers";
//Form Values into store
$FirstName=$_POST['firstnamecreate'];
$Surname=$_POST['Surnamecreate'];
$Username=$_POST['UsernameCreate'];
$UserType="stu"; //never mind this, it just seperates admins from standard users
$Email=$_POST['EmailCreate'];
$Password=$_POST['PasswordCreate'];
$ExistingUserVerification = mysqli_query ($connection,"SELECT COUNT(*) as num FROM tblUsers WHERE UserName = $Username");
$UserResults = mysqli_query($connection,$ExistingUserVerification);
if($UserResults[0] == 1){
$CreatedStatus = "$Username already exists in the user database. Please choose a different Username.";
}else{
$sql="INSERT INTO $tblName(UserName, Password, UserType, FirstName, Surname, EmailAddress)VALUES('$Username', '$Password', '$UserType', '$FirstName', '$Surname', '$Email')";
$result=mysqli_query($connection,$sql);
if($result){
$CreatedStatus = "$FirstName, you have registered successfully. Click " . "<a href=Login.php>". "HERE". "</a>" . " to login. " . "<br />"."Please note: Hacking of this site is not permitted.";
}
else {
$CreatedStatus = "Unfortunately $Username was not created successfully. Please check your entry or check whether the user already exists.";
}
}
}
}
?>
我遇到的问题是围绕
$ExistingUserVerification = mysqli_query ($connection,"SELECT COUNT(*) as num FROM tblUsers WHERE UserName = $Username");
$UserResults = mysqli_query($connection,$ExistingUserVerification);
一部分。 我尝试了各种各样的。使用当前格式,结果如下:
警告:mysqli_query():第26行/home/trainman/public_html/Register.php中的空查询
删除$ connection导致它期望2个参数并删除我说的描述。
任何帮助很多appriciated。自从我上次使用php以来已经有一段时间了,如果代码不整洁,那就很抱歉。 select COUNT(*)检查是否有另一个用户具有相同的用户名,如果没有它将表单值提交给DB
答案 0 :(得分:0)
此错误来自于向mysqli发送空查询的极其简单的事实。查询为空。它只是一个空字符串。什么都没有。
所以只需检查你的变量。
mysqli_query()
的第二个参数应该是 PHP字符串包含合法的SQL查询。其他任何内容都会导致错误。