我将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));
}
答案 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!";
}