2016-04-21 42 views
2

我试图找到类似的问题,但是我不能。至少我不明白答案。今天,我一直在创建一个简单的PHP脚本时遇到了很多麻烦。我有一段时间没有使用PHP,所以我想重建我的知识。但是,当我试图做一个简单的查询与返回的回声效果,这是说类mysqli_result的对象无法在简单查询中转换为字符串

Catchable fatal error: Object of class mysqli_result could not be converted to string in /hermes/bosnaweb12a/b963/ipg.matjasicborutcom1/TouchSoccer/process.php on line 18 

我记得我以前代码输出这样和查询一样,但现在它不工作...这里是代码:

<?php 
    include 'dbinfo.php'; 
    $choice = $_GET['choice']; 
    $connect = mysqli_connect($hostname, $username, $password, $database); 
    if (mysqli_connect_errno($connect)) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    switch($choice) 
    { 
     case "register": 

    $username = $_GET['username']; 
    $password = $_GET['password']; 
    $email = $_GET['email']; 
    $reg_ip = $_GET['reg_ip']; 


    $query = mysqli_query($connect, "SELECT username FROM Accounts WHERE username = '$username'"); 


    if($query) 
    { 
     echo "username already exists"; 
    } 
    else { 

     $insert = mysqli_query($connect, "INSERT INTO Accounts (username, password, email,reg_ip, wins, looses, experience) VALUES ('$username', md5('$password'), '$email', '$reg_ip', '0','0', '0'"); 
     if($insert) { 
       echo "account successfully created"; 

      } 
      else { 
       echo "error"; 
      } 

     } 

     break; 

     case "login": 

     $username = $_GET['username']; 
     $password = $_GET['password']; 

     $user = mysqli_query($connect, "SELECT username FROM Accounts WHERE username = '$username'"); 

      if($user = $username) { 
       $pw = mysqli_query($connect, "SELECT password FROM Accounts WHERE password = md5('$password')"); 

       if($pw = md5($password)) { 
        echo "login was successful!"; 
       } 
       else { 
        echo "incorrect password"; 
       } 

      } 
     else 
{   
    echo "incorrect username"; 
     } 



     break; 


    } 

mysqli_close($connect); 
?> 

在此先感谢。所有的答案都非常感谢!

+0

改变你的'if($ user = $ username){'和其他所有你试图*比较*两个值来使用'=='的地方。 – Ekin

+0

为$ user,$ pw代码如上这个错误不会让我感到惊讶 – Ekin

+0

@Ekn错误依然存在。我改变了所有的比较。我可以提到我只使用了$ choice =“register”; – BorutMatjasic

回答

0

这个代码后:

$user = mysqli_query($connect, "SELECT username FROM Accounts WHERE username = '$username'"); 

$用户变量是mysqli result object用户名字段的不普通值,所以你不能把它比作字符串变量。

+0

我必须做什么才能使它充当一个字符串?或至少如何从中捕获该字符串? – BorutMatjasic

+0

尝试: '$ res = mysqli_query($ connect,'您的查询在这里'); $ user = mysqli_fetch_object($ res); echo $ user-> username;' – Cichy

相关问题