【问题标题】:i want to search and display the data from database but it gives me error [closed]我想搜索并显示数据库中的数据,但它给了我错误[关闭]
【发布时间】:2015-03-22 12:09:02
【问题描述】:

这是我的 search_candidate.php 文件

<?php

   $name = $_GET['name'];
   $sql = "SELECT * FROM candidates WHERE Name = $name";
   $query = mysql_query( $sql );
          if(mysql_num_rows($query) == "")
          {
          echo "no result found";
          }
          echo "<table>";

          echo "<thead></thead>";
                while( $row = mysql_fetch_array( $query ) )
                     {
                      echo "<tr></tr>";
                     }
          echo "</table>";
?>

【问题讨论】:

标签: php html


【解决方案1】:
SELECT * FROM candidates WHERE Name = $name

$name 是一个字符串,需要像'$name' 这样放在引号中

但即使在修复之后,您也不会得到任何东西,因为您的循环不会打印任何数据。它只是打开和关闭新行,里面没有任何内容。

How can I prevent SQL injection in PHP?

【讨论】:

    【解决方案2】:

    似乎名称是字符串,所以在查询中为 $name 添加引号

    $sql = "SELECT * FROM candidates WHERE Name = '$name'";
    

    注意:- mysql_* 已被弃用,使用 mysqli_*PDO

    【讨论】:

      【解决方案3】:

      试试这个代码吧。

      <?php
      
         $name = $_GET['name'];
         $sql = "SELECT * FROM candidates WHERE Name = '$name'";
         $query = mysql_query( $sql );
                if(mysql_num_rows($query) == "")
                {
                echo "no result found";
                }
                echo "<table>";
      
                echo "<thead></thead>";
                      while( $row = mysql_fetch_array( $query ) )
                           {
                            echo "<tr><td>".$row['name']."</td></tr>";
                           }
                echo "</table>";
      ?>
      

      从问题中复制代码并对 2 个错误进行更改 $name 字符串必须用引号括起来,并在循环中添加 &lt;td&gt;".$row['name']."&lt;/td&gt; 以显示某些内容。

      您的代码允许任何人注入,因此请尝试使用PDOMySQLi 连接。

      【讨论】:

      • 为什么这被否决了?
      • @Fred-ii- 人们不喜欢帮助......
      • 我知道这种感觉。一定是喝了坏咖啡。
      • 请不要对否决票这么快做出判断。我会告诉你为什么这被否决了。这个答案很痛苦地从问题中复制粘贴代码并修复了一个字符串引号,并没有意识到粘贴的其余代码仍然是错误的,它不输出任何数据。这个循环所做的就是echo "&lt;tr&gt;&lt;/tr&gt;"; 这会产生输出吗?为什么要重现错误的代码?
      • @Hanky웃Panky 确实如此,但修复仍然部分存在。 OP 也需要在这里修复它,但我同意。我最初没有注意到这一点。
      猜你喜欢
      • 1970-01-01
      • 2015-07-21
      • 2020-06-18
      • 2018-04-10
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      相关资源
      最近更新 更多