PHP - 将数据库信息回显为字符串

时间:2016-04-08 20:13:55

标签: php mysql mysqli

我只是试图将数据库中的特定数据回显或打印成字符串(我希望这是正确的名称),这应该是一个非常简单的过程,因为我之前已经完成了。关键是每当用户将信息插入数据库时​​,该字符串回显或打印出插入的数据。

但是出于一些非常奇怪的原因,这次当我试图回应数据时,我确实得到了这个。

enter image description here

非常令人沮丧。从上图中可以看出,我尝试使用2种不同的方法来做变量和会话,但回声字面上只是将其打印出来。我之前已经这样做了所以我知道这是可能的。我只是有点迷失了我的意思是如何实现这一点,甚至更好的地方我出错了。我知道如何使用不同的编码方式来做到这一点,但我试图让所有东西都穿着制服(新手)。

  $addon_name = $_SESSION['Add_On_OpName'];
  mysqli_report(MYSQLI_REPORT_INDEX); //overrid a common php nonsense error
  $prod_sel = $dbc->query("SELECT * FROM Add_On WHERE Add_On_OpName = '$addon_name'");
  $prod_sel->data_seek(0);
  while ($output = $prod_sel->fetch_assoc()) {
  $prod_run .= $output['Add_On_OpName'] . $output['Prod_Name'] . $output['Add_On_Price'] . $output['Add_On_Select'] . '<br>';
$addon = $output['Add_On_OpName']; //echo out product name
$_SESSION['Prod_Name'] = $output['Prod_Name']; //echo out product desc
$_SESSION['Add_On_Price'] = $output['Add_On_Price']; //echo out price


echo '
<p>$addon . " " .  $_SESSION["Add_On_Price"]; </p>                    
 ';

我的会话已启动且php文件已连接到数据库。 我也有错误处理,但没有发出任何错误消息。

5 个答案:

答案 0 :(得分:2)

你必须这样做:

echo "<p>$addon ".$_SESSION["Add_On_Price"]."; </p>";

封装到'中的字符串就像它一样呈现。 使用"呈现包含变量的字符串。例如:

$a = 3;
$a++;
echo "the result is $a";

将导致the result is 4。 另一方面,

echo 'the result is $a';

给出the result is $a

答案 1 :(得分:1)

正如documentation所指出的那样:

  

单引号¶指定字符串的最简单方法是将其括起来   用单引号(字符')。

     

Doued¶

     

如果字符串用双引号(“)括起来,PHP将解释   更多特殊字符的转义序列

尽量不要混合.. 如果在双引号内你有一个关联数组,你可以连续。

echo  "string $variable". $array["index"];

echo "string $variable {$array["index"]}";

然后你的代码看起来像

 $addon_name = $_SESSION['Add_On_OpName'];
  mysqli_report(MYSQLI_REPORT_INDEX); //overrid a common php nonsense error
  $prod_sel = $dbc->query("SELECT * FROM Add_On WHERE Add_On_OpName = '$addon_name'");
  $prod_sel->data_seek(0);
  while ($output = $prod_sel->fetch_assoc()) {
     $prod_run .= $output['Add_On_OpName'] . $output['Prod_Name'] . $output['Add_On_Price'] . $output['Add_On_Select'] . '<br>';
      $addon = $output['Add_On_OpName']; //echo out product name
   $_SESSION['Prod_Name'] = $output['Prod_Name']; //echo out product desc
   $_SESSION['Add_On_Price'] = $output['Add_On_Price']; //echo out price

   echo "<p>$addon {$_SESSION["Add_On_Price"]}; </p>'";

   }

很久以前 我从不使用双引号,因为它需要解析整个字符串以获取特殊符号。不过它。

尽量不要将单引号与双引号混用。为你的代码选择一个标准你不会发现任何差异,而不是容易编码和阅读而没有意外

答案 2 :(得分:0)

使用双引号

echo "<p>$addon $_SESSION['Add_On_Price']; </p>";

答案 3 :(得分:0)

你正在混合单引号和双引号。单引号不执行变量插值,所以当你写这个:

echo '... whatever including " char and $ sign';

PHP将直接打印内部的所有内容。

答案 4 :(得分:0)

你忘了一些'或'!

echo '<p>' . $addon . ' ' . $_SESSION["Add_On_Price"] . '</p>';