我编写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));
}
1条答案
按热度按时间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循环