无法获取sql值,PHP

无法获取sql值,PHP,php,mysql,Php,Mysql,我发现了错误,但我不知道为什么,错误在sql语句中,如果我用实际值work替换哈希变量,例如,hash=“3”work,但如果我使用具有相同值的变量hash,则它不起作用;(.我无法获取结果的值,它是数字2,但在echo中它没有显示任何内容,我不明白为什么,它使用fetch获取值,是一个1的数组,因此应该是数字2,但它不起作用, 修正了变量上空格的错误 <?php ini_set('display_errors', 1); ini_set('display_

我发现了错误,但我不知道为什么,错误在sql语句中,如果我用实际值work替换哈希变量,例如,hash=“3”work,但如果我使用具有相同值的变量hash,则它不起作用;(.我无法获取结果的值,它是数字2,但在echo中它没有显示任何内容,我不明白为什么,它使用fetch获取值,是一个1的数组,因此应该是数字2,但它不起作用, 修正了变量上空格的错误

      <?php  
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    require("db.php");



    $hash = $_GET["hash"];




$sql23 = "SELECT * FROM `game` WHERE `hash` = '$hash'";

if ($result=mysqli_query($link,$sql23))
  {
  // Fetch one and one row
  while ($row = mysqli_fetch_row($result)) {
    printf ("%s (%s)\n", $row[0], $row[1]);
}
  // Free result set
  mysqli_free_result($result);
}



    ;
    ?>

首先,您的代码极易受到SQL注入的攻击。请确保从中保存您的应用程序。因此,现在,请通过以下方式进行更改:

$hash = mysqli_real_escape_string($link, $_GET["hash"]);
$sql2 = "SELECT point FROM game WHERE hash='$hash'";
其次,您的代码在这里:

while ($row = $result->fetch_assoc()) {
  echo $row['']."<br>";
}
echo $row[0];
上面的代码将向您显示哪些字段可用。您要查找的代码很可能是:

if (mysqli_num_rows($result))
  while (false != ($row = mysqli_fetch_assoc($result))) {
    echo $row["point"], "<br />";
  }
if(mysqli\u num\u行($result))
while(false!=($row=mysqli\u fetch\u assoc($result))){
echo$行[“点”],“
”; }
应该
echo$row[''']。
应该
echo$row['point']。”
(即列的名称作为索引)不要混合使用两个库。ty但不要担心,请检查我的答案。您还有许多其他错误。让我知道它是否有效…而不是在(false!=($row=mysqli\u fetch\u assoc($result)){echo$row[“point”],
”}它没有显示任何内容;(@atr它是完全空白的吗?是的,point的值是2,如果在sql web控制台上执行查询,则给出2您不应该使用
mysqli\u real\u escape\u string()
。你应该使用预先准备好的语句。@MagnusEriksson同意,我不知道如何编写PS,所以我现在没有写任何东西。这比什么都不用要好得多。
if (mysqli_num_rows($result))
  while (false != ($row = mysqli_fetch_assoc($result))) {
    echo $row["point"], "<br />";
  }