php注册mysql不是有效的资源

php注册mysql不是有效的资源,php,mysql,transactions,Php,Mysql,Transactions,好的帮助..我的注册页面在本地服务器上工作,但是现在它说当它联机时这两行mysql是无效的..为什么它联机时会改变?粘贴的代码是所有相关的。出于某种原因,它不喜欢这个事务..和电子邮件检查mysql位 include 'Connect.php'; //Connects to database //When form is submit:- if(isset($_POST['submit'])) { // On submit, re

好的帮助..我的注册页面在本地服务器上工作,但是现在它说当它联机时这两行mysql是无效的..为什么它联机时会改变?粘贴的代码是所有相关的。出于某种原因,它不喜欢这个事务..和电子邮件检查mysql位

include 'Connect.php'; //Connects to database
//When form is submit:-
if(isset($_POST['submit']))
{         
                        // On submit, retrieve table values for php.                 
                        $Firstname = mysql_real_escape_string($_POST['firstname']);
                        $Surname = mysql_real_escape_string($_POST['surname']);
                        $Password = mysql_real_escape_string($_POST['password']); 
                        $PasswordCheck = mysql_real_escape_string($_POST['passwordcheck']); 
                        $Email = mysql_real_escape_string($_POST['email']); 
                        $EmailCheck = mysql_real_escape_string($_POST['emailcheck']); 

                    //CHECKS. 
                    //Check username is available by retrieving any same values from the DB table.          
                    $CheckEmailAvailable = mysql_query("SELECT * FROM 'user_details' WHERE Email = '$Email'");
                    echo $CheckEmailAvailable;
                    // $result = mysql_query("SELECT * FROM $tbl WHERE Email='$email' and LoginPassword='$password'");
                    $Results = mysql_fetch_array($CheckEmailAvailable);

                    //If Username field is blank.
                    if($Email == null )
                    {               
                        echo "You must enter an email address.";
                        $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
                        echo "<br/><br/>";
                        echo "<a href='$url'>Click Here To Return</a>";
                        die();                      
                    }

                    //If RESULTS is any value other than NULL, die.
                    if($Results != null )
                    {               
                        echo "Email already taken. Please try another.";
                        $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
                        echo "<br/><br/>";
                        echo "<a href='$url'>Click Here To Return</a>";
                        die();                  
                    }

                    //If Password and PasswordCheck fields in reg do not match, die.
                    if($Password != $PasswordCheck) 
                    {
                        echo "The passwords you have entered do not match. Please try again.";
                        $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
                        echo "<br/><br/>";
                        echo "<a href='$url'>Click Here To Return</a>";
                        die();
                    }

                    //If Password field is NULL (i.e. blank) die.
                    if($Password == Null)
                    {
                        echo "Your password must not be blank.";
                        $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
                        echo "<br/><br/>";
                        echo "<a href='$url'>Click Here To Return</a>";
                        die();
                    }

                    //If Email and EmailCheck are not equal, die.
                    if($Email != $EmailCheck)
                    {                                                                        
                        echo "The email addresses you have entered do not match. Please try again.";
                        $url = htmlspecialchars($_SERVER['HTTP_REFERER']);
                        echo "<br/><br/>";
                        echo "<a href='$url'>Click Here To Return</a>";
                        die();

                    }


                    //ELSE add data to DB.
                    else
                    {
                    //BEGIN TRANS
                    mysql_query("BEGIN TRAN");

                    //TABLE ADD.
                    $sql=mysql_query("INSERT INTO `user_details` (`Firstname`, `Surname`, `Email`, `Password`) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
                    or mysql_query("ROLLBACK TRAN") . die(mysql_error("Error registering, the database may be down, please try again later."));


                    //COMMIT transaction, to ensure data is added properly.
                    mysql_query("COMMIT TRAN");
                    header( 'Location: RegSucc.php' ) ;
                    }   
                } ?>
              <html> 
            <!--Registration Form-->
            <form name="form1" method="post" style="margin-left: 28%" action="Register.php">
                <table width="100%" border="0" cellpadding="3" cellspacing="1">
                <tr>
                    <td colspan="3"><strong>Register Account</strong></td>
                </tr>
                <tr>
                    <td style="width: 83px">First Name:</td>
                    <td>:</td>
                    <td><input name="firstname" type="text"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">Surname:</td>
                    <td>:</td>
                    <td><input name="surname" type="text"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">Email Address:</td>
                    <td>:</td>
                    <td><input name="email" type="text"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">Email Address Confirmation:</td>
                    <td>:</td>
                    <td><input name="emailcheck" type="text"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">Password:</td>
                    <td>:</td>
                    <td><input name="password" type="password"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">Verify Password:</td>
                    <td>:</td>
                    <td><input name="passwordcheck" type="password"/></td>
                </tr>
                <tr>
                    <td style="width: 83px">&nbsp;</td>
                    <td>&nbsp;</td>
                    <td><input type="submit" name="submit" value="Register"/></td>
                </tr>
                </table>
            </form>
包括“Connect.php”//连接到数据库
//提交表格时:-
如果(isset($_POST['submit']))
{         
//提交时,检索php的表值。
$Firstname=mysql\u real\u escape\u字符串($\u POST['Firstname']);
$LANSAME=mysql_real_escape_string($_POST['姓氏]);
$Password=mysql\u real\u escape\u字符串($\u POST['Password']);
$PasswordCheck=mysql\u real\u escape\u字符串($\u POST['PasswordCheck']);
$Email=mysql\u real\u escape\u字符串($\u POST['Email']);
$EmailCheck=mysql\u real\u escape\u字符串($\u POST['EmailCheck']);
//支票。
//通过从DB表中检索任何相同的值来检查用户名是否可用。
$CheckEmailAvailable=mysql_查询(“从'user_details'中选择*,其中Email='$Email');
echo$CheckEmail可用;
//$result=mysql_查询(“从$tbl中选择*,其中Email='$Email'和LoginPassword='$password'”);
$Results=mysql\u fetch\u数组($CheckEmailAvailable);
//如果用户名字段为空。
如果($Email==null)
{               
echo“您必须输入电子邮件地址。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“

”; 回声“; 模具(); } //如果结果不是NULL,则为die。 如果($Results!=null) { echo“电子邮件已被接收。请尝试另一封。”; $url=htmlspecialchars($_服务器['HTTP_REFERER']); 回声“

”; 回声“; 模具(); } //如果注册表中的密码和密码检查字段不匹配,请退出。 如果($Password!=$PasswordCheck) { echo“您输入的密码不匹配。请重试。”; $url=htmlspecialchars($_服务器['HTTP_REFERER']); 回声“

”; 回声“; 模具(); } //如果密码字段为空(即空白),则为空。 如果($Password==Null) { echo“您的密码不能为空。”; $url=htmlspecialchars($_服务器['HTTP_REFERER']); 回声“

”; 回声“; 模具(); } //如果Email和EmailCheck不相等,则终止。 如果($Email!=$EmailCheck) { echo“您输入的电子邮件地址不匹配。请重试。”; $url=htmlspecialchars($_服务器['HTTP_REFERER']); 回声“

”; 回声“; 模具(); } //否则将数据添加到数据库中。 其他的 { //开始转换 mysql_查询(“开始传输”); //表ADD。 $sql=mysql\u查询(“插入到'user\u details'('Firstname','names','Email','Password')值('$Firstname','$namname','$Email','$Password')) 或者mysql_query(“ROLLBACK TRAN”).die(mysql_error(“注册错误,数据库可能已关闭,请稍后再试”); //提交事务,以确保正确添加数据。 mysql_查询(“提交传输”); 标题('Location:regsuch.php'); } } ?> 注册帐户 名字: : 姓: : 电邮地址: : 电子邮件地址确认: : 密码: : 验证密码: :
查询

SELECT * FROM 'user_details' WHERE Email = '$Email'
这是无效的。在表示表名时,最好使用反勾号,但使用引号将不起作用

SELECT * FROM `user_details` WHERE Email = '$Email'
在本地主机上,可以将其设置为使用引号。但是,这不是“应该”的方式,服务器的安装可能会有所不同。这个故事的寓意是:不要走捷径或使用丑陋的代码。不要忘记勾选表名或列,不要使用PHP短标记等

$sql=mysql_query("INSERT INTO `user_details` (`Firstname`, `Surname`, `Email`, `Password`) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
应该是

$sql=mysql_query("INSERT INTO user_details (Firstname, Surname, Email, Password) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
SELECT * FROM user_details WHERE Email = '$Email'

应该是

$sql=mysql_query("INSERT INTO user_details (Firstname, Surname, Email, Password) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
SELECT * FROM user_details WHERE Email = '$Email'
就这样…

更改这行

$CheckEmailAvailable = mysql_query("SELECT * FROM 'user_details' WHERE Email = '$Email'");