mysqli_query不返回结果

时间:2019-01-01 15:27:32

标签: php mysql function get

我将php代码从mysql返回。
我的查询在mysql工作台上工作,但是在php中不工作。

下面的

sql在mysql工作台中返回良好。

"select * from players_info where name = XXXX and sex = X and season = xxxx and tName = XXXX"

我的php在下面

function player_info($conn, $name, $season, $sex, $tName){
    $output = '';
    $sql = "SELECT * 
        FROM players_info 
        WHERE name ='".$name."' and sex ='".$sex."'
        and season = '".$season."' and tName = '".$tName."'";

    $result = mysqli_query($conn, $sql);

    if($result -> num_rows > 0){
        while($row = mysqli_fetch_assoc($result)){
            $output = $row['name']."\n"
                ."No : ".$row['No']."\n"
                ."Pos : ".$row['pos']."\n"
                ."Height(m) / Weight(kg) : ".$row['height']. " / ".$row['weight']."\n"
                ."Born : ".$row['month']." ".$row['day'].", ".$row['year']."\n"
                ."Shoots / Catches : ".$row['shoots']."\n"
                ."Club : ".$row['team'];
        }
    } else {
        echo "no result!";
    }    
    $conn -> close();

    return $output;
}

HTML在下面。

<div id = "player_page3">
    <?php  
    echo player_info($conn, $_GET["name"], $_GET["season"], $_GET["sex"], $_GET["tName"]); 
    ?>
</div>

我认为我的代码即使sql正确也返回0结果。
我的代码有什么问题?

更新:
我在$ sql之后添加了如下所示的代码。
我认为它什么也没返回。 结果为“错误说明:没有结果!”
'没有结果!'来自我代码中的else语句。

if (!mysqli_query($conn, $sql)){
    echo("Error description : ". mysqli_error($conn));
}

1 个答案:

答案 0 :(得分:0)

首先-如注释中所述,您需要学习准备sql语句。使用PDO-您当前的脚本易受攻击进行sql注入。

以下是需要注意的几点:

您的$output变量未收集结果,因为它会在循环中覆盖自身。您需要将其更改为.=

$output .= $row['name']."\n"
    ."No : ".$row['No']."\n"
    ."Pos : ".$row['pos']."\n"
    ."Height(m) / Weight(kg) : ".$row['height']. " / ".$row['weight']."\n"
    ."Born : ".$row['month']." ".$row['day'].", ".$row['year']."\n"
    ."Shoots / Catches : ".$row['shoots']."\n"
    ."Club : ".$row['team'];

.=将新文本连接到末尾。

更新

如果只需要一行,则需要删除while循环

if($result -> num_rows > 0){
    $row = mysqli_fetch_assoc($result)
    $output = $row['name']."\n"
        ."No : ".$row['No']."\n"
        ."Pos : ".$row['pos']."\n"
        ."Height(m) / Weight(kg) : ".$row['height']. " / ".$row['weight']."\n"
        ."Born : ".$row['month']." ".$row['day'].", ".$row['year']."\n"
        ."Shoots / Catches : ".$row['shoots']."\n"
        ."Club : ".$row['team'];
} else {
    echo "no result!";
}