mysqli\u查询不返回结果

aiqt4smr  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(337)

我编写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>

我认为我的代码返回0结果,即使sql是正确的。
我的代码有什么问题?
更新:
我在$sql后面添加了如下所示的代码。
我想它什么也不回。结果是“错误描述:无结果!”
“没有结果!”来自代码中的else语句。

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

mm9b1k5b1#

首先-正如评论中提醒的那样,您需要学会准备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!";
}

相关问题