2017-09-20 121 views
-3

我有一个登录页面(没有任何保护,即时将去设置它们)但每次我运行任何查询时,即使是一个简单的SELECT * FROM 'player',$risultato总是错误的。我已经检查过所有连接信息是否正确(它们在注册页面中工作)。有人知道为什么吗?查询总是返回false - PHP MYSQL

的login.php

<?php 

    $connessione = mysqli_connect("localhost", "my_id", "my_pass", "my_db"); 

    $user_name = $_GET['user_name']; 

    $user_pass = $_GET['user_pass']; 

    $query = "SELECT username FROM 'player';"; 

    $risultato = mysqli_query($connessione, $query); <---- !!always false!! 

    $count = mysqli_num_rows($risultato); <---- it say that he receved a boolean (false) 

    if ($count != 1) { 
     echo "Nessun risultato."; 
    }else{ 

     $row = mysqli_fetch_assoc($risultato); 

     $name = $row['username']; 


} 

编辑:

我的工作register.php:

<?php 

$connessione = mysqli_connect("localhost", "my_id", "my_pass", "my_db"); 

$user_name = $_POST['user_name']; 

$user_pass = $_POST['user_pass']; 

$query = "INSERT INTO `player` (`username`, `password`, `money`) VALUES ('".$user_name."', '".$user_pass."', '100');"; 

$risultato = mysqli_query($connessione, $query); 

if($risultato){ 
http_response_code(200); 
}else{ 
http_response_code(400); 
} 

编辑#2:

这个心不是工作压力太大:

<?php 

$connessione = mysqli_connect("localhost", "id2967178_fyruz", "Ferru9800", "id2967178_collectcards"); 
echo mysqli_error($connessione); 
$user_name = $_GET['user_name']; 

$user_pass = $_GET['user_pass']; 

$query = "SELECT username FROM `player`"; 

$risultato = mysqli_query($connessione, $query); 

$count = mysqli_num_rows($risultato); 

if ($count != 1) { 
    echo "Nessun risultatooooo."; 

}else{ 

    $row = mysqli_fetch_assoc($risultato); 

    $name = $row['username']; 


} 
+3

它是错误的,因为您的查询失败或连接不起作用 – clearshot66

+0

注意:mysqli的面向对象的接口明显较少冗长,使得代码更易于阅读和审计,并且不易与过时混淆'mysql_query'界面。在你过于投入程序风格之前,它是值得转换的。例如:'$ db = new mysqli(...)'和'$ db-> prepare(“...”)过程接口是PHP4时代的一个神器,当引入mysqli API时,不应该在新的代码 – tadman

+0

很多问题都可以通过[在mysqli中启用例外]来检测和解决(https://stackoverflow.com/questions/14578243/turning-query-errors-to-exceptions-in-mysqli),所以错误不要轻易忽略 – tadman

回答

2

这里的问题是你使用了错误的引号。它应该是:

SELECT username FROM `player` 

单引号用于分隔字符串只和字符串。

这只是一个问题,虽然,还有其他的众多,像你干吗打从该表中的所有的名字和你有什么与$_GET变量做。

+0

我已经尝试过,但它一直失败,而register.php工作(生病发贴) –

+0

@GianmarcoFerruzzi您从register.php查询使用反引号,如上面建议。这正是它工作的原因,而你的login.php(使用单引号)不是。 –

+1

正如我在评论中所述,OP没有使用'WHERE'子句。 –