【问题标题】:Can't echo PHP variable无法回显 PHP 变量
【发布时间】:2013-09-24 12:18:46
【问题描述】:

我正在尝试建立一个 CMS。我不想使用模板,我想做一些更高级的事情,因此我需要制作许多表格和许多行来达到相同的效果,因为每个页面都有不同的设计。

因此,在 index.php 中,我有 7 个文本字段,我希望能够通过 RTE 对其进行更新。所以我在我的数据库上创建了一个名为“page_hem1”的表,其中存在这 7 个文本字段,名称为“text1”、“text2”等。

然后我为此编写了一些基本代码:

// Query the body section for the proper page
$sqlCommand = "SELECT text1 FROM page_hem WHERE id='$pageid' LIMIT 1"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
while ($row = mysqli_fetch_array($query)) { 
    $body1 = $row["text1"];
    $body2 = $row["text2"];
    $body3 = $row["text3"];
    $body4 = $row["text4"];
    $body5 = $row["text5"];
    $body6 = $row["text6"];
    $body7 = $row["text7"];
} 
mysqli_free_result($query); 

我的问题是只有 $body1 变量被回显。为什么其他人没有?我究竟做错了什么?您应该知道,我还尝试为每个“$body”变量重复相同的代码序列,但也没有成功。也许我没有以正确的方式重复?

我可以做些什么来回显所有 $body 的?

提前致谢!

【问题讨论】:

  • 只选择text1后,不会出现text2text3等其他列,这不是很明显吗?
  • 什么是 text2, text3 ?你没有选择它们
  • 顺便说一句,你使用的是mysqli,这是一个好的开始,但你仍然有一个巨大的注入漏洞。使用参数化查询。
  • 突然间我觉得皇家 BG 很愚蠢……非常感谢!不过,我不得不说我不是 PHP 专家......只是一个初学者......
  • 我一定会Wooble!谢谢!

标签: php database variables content-management-system echo


【解决方案1】:

我认为唯一的错误是您只选择“text1”而不是所有文本列。

// Query the body section for the proper page
$sqlCommand = "SELECT text1, text2, text3, text4, text5, text6, text7 FROM page_hem WHERE id='$pageid' LIMIT 1"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
while ($row = mysqli_fetch_array($query)) { 
    $body1 = $row["text1"];
    $body2 = $row["text2"];
    $body3 = $row["text3"];
    $body4 = $row["text4"];
    $body5 = $row["text5"];
    $body6 = $row["text6"];
    $body7 = $row["text7"];
} 
mysqli_free_result($query); 

【讨论】:

  • 谢谢!那完成了工作!感觉好蠢……当你是初学者时会发生这种情况……
  • np。每个人都是初学者,一个好的开始总是如此;)
【解决方案2】:

需要检索text1、text2等。

$sqlCommand = "SELECT text1, text2, text3, text4, text5, text6, text7 FROM page_hem WHERE id='$pageid' LIMIT 1"; 

【讨论】:

    【解决方案3】:

    因为你只选择一列

    错误(至少在这里,因为您需要其他列而不只是 text1)

    "SELECT text1  FROM page_hem ...
    

    更好(只是得到所有,但避免)

    "SELECT * FROM page_hem
    

    正确的(只有你需要的)

    "SELECT text1, text2, ... FROM page_hem
    

    【讨论】:

    • 好吧,不如往下看,这不是那个意思,现在更正了。
    【解决方案4】:
    $sqlCommand = "SELECT text1, text2, text3, text4, text5, text6, text7 FROM page_hem WHERE id='$pageid' LIMIT 1"; 
    $query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
    while ($row = mysqli_fetch_array($query)) { 
        $body1 = $row["text1"];
        $body2 = $row["text2"];
        $body3 = $row["text3"];
        $body4 = $row["text4"];
        $body5 = $row["text5"];
        $body6 = $row["text6"];
        $body7 = $row["text7"];
    } 
    mysqli_free_result($query); 
    

    【讨论】:

      猜你喜欢
      • 2019-11-10
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2010-12-12
      • 2013-11-21
      相关资源
      最近更新 更多