【问题标题】:cant display specific row from database using PHP though no errors is shown尽管没有显示错误,但无法使用 PHP 显示数据库中的特定行
【发布时间】:2020-08-15 08:28:42
【问题描述】:

当我单击转到表单时,我想查看有关该 ID 号的所有其他信息。 这是转到表单选项背后的代码:

        <td width="174"  class="centertext"><a href="form.php?formid=<?php echo $row["formid"]; ?>"> Go to the form</a></td> 

这是我用来从数据库中检索特定行的代码。该代码没有显示任何错误,但也没有显示结果。我看到的只是空白页。这里有什么问题?我一直在尝试解决 1 周,但找不到任何东西。我是 PHP 的初学者。提前致谢。

<?php
$conn = mysqli_connect("localhost","root","","son_fbe");

if (mysqli_connect_error()) {

     echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();

    }


$formid = isset($_GET['formid ']) ? $_GET['formid '] : ''; 

    if($sql= "SELECT formid,gonderilen,gonderen FROM derssaydirma WHERE formid = ?")
                  {  
                     $stmt = $conn->prepare($sql); 
                     $stmt->bind_param("i", $formid);
                     $stmt->execute();
                     $result = $stmt->get_result();
                    while ($row = $result->fetch_assoc()) {
                         echo $row[ 'formid'];   
                         echo  $row['gonderilen'];
                         echo $row['gonderen'];   }

                     $stmt->close();
                 }
                 // show an error if the query has an error
                 else
                 {
                     echo "Error: could not prepare SQL statement";
                 }


?>

【问题讨论】:

  • 您的if 声明永远不会是错误的。它所检查的只是将字符串分配给$sql
  • 你觉得这条线有什么作用? if($sql= "SELECT formid,gonderilen,gonderen FROM derssaydirma WHERE formid = ?")
  • 其实我也不知道。当你说它时,它看起来不需要if语句。
  • @davidev 是的,没有结果。我已经在这里做了回声。 while ($row = $result->fetch_assoc()) { echo $row[ 'formid'];回声 $row['gonderilen'];回声 $row['gonderen']; }
  • 提示:enabling exceptions in mysqli 可以检测和解决很多问题,因此不会轻易忽略由简单错误引起的错误。毫无例外,您必须密切注意返回值,其中许多表明您必须解决或向用户报告的问题。异常允许更复杂的流控制,因为它们可以“冒泡”到代码的其他部分,以便更方便地处理它们。

标签: php html mysql sql mysqli


【解决方案1】:

我想我发现了错误.. 访问 get 数组时,您的名字中有一个空格。 $formid 将是 "",这就是您的查询不起作用的原因。

改变这一行..

$formid = isset($_GET['formid ']) ? $_GET['formid '] : ''; 

$formid = isset($_GET['formid']) ? $_GET['formid'] : ''; 

【讨论】:

  • @dontclosemyquestions 没问题..我试图重现你的代码,然后注意到 $formid 是 "" 即使我设置了 get 参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多