【问题标题】:SQL values are 0, even though they existSQL 值为 0,即使它们存在
【发布时间】:2014-11-05 16:41:54
【问题描述】:

我正在尝试查询我的 MySQL 数据库中的一些变量,但由于某些原因它返回 0。 代码如下:

<html>
<body>
<?php
    session_start();

    $connection = mysqli_connect("", "", "", "");

    if (empty($connection))
        $error = "Could not connect to Database, please contact an admin with this code: DBE1";


    $tnews = mysqli_query($connection, "SELECT * FROM Test ORDER BY ID DESC");

    while ($news = mysqli_fetch_array($tnews))
    {
        $title = $news['Title'];
        $pimg = $news['PrevImg'];
        $ptext = $news['PrevText'];
        $text = $news['Text'];
        $img1 = $news['Img1'];

        echo "<h1>" + $title + "</h1><br><br>";
        echo "<p>" + $pimg + "</p>";
        echo "<br><p>" + $ptext + "</p><br><br>";
        echo "<p>" + $text + "</p>";
        echo "<br><p>" + $img1 + "</p>";
        echo $title;
    }
    mysqli_close($connection);

?>
    </body>
</html>

哦,结果 00000

我有另一个站点,其中几乎(变量名称、回声、...)一切都是一样的,它在那里工作!我真的不知道出了什么问题,有人知道吗?

P.S: DB Connection 有空字符串,因为它有我的数据库的 ip、用户名、密码和 db! ;D

感谢您的帮助!

【问题讨论】:

  • 用. 替换你所有的+ - 你可能是一个JS 编码员。我怀疑你想在这里做数学;)
  • 天啊!谢谢!我猜我不擅长 php ;D
  • 不客气。 JS + 连接相当于 PHP 的 .,反之亦然。
  • 虽然您似乎没有在这里使用会话,但您的session_start() 将失败,因为您已经输出了 html。将 session_start(); 移动到脚本的绝对顶部。
  • @jeroen Lordie,口中相传。对不起,你说的太对了。哦,我最初是 +1 你的评论,我只是把电线交叉了,哈哈

标签: php mysql


【解决方案1】:

+ 是 JS 中的连接运算符,使用 PHP 的等价物,即点 .

现在,如 cmets 中所述,您在会话之前输出内容。

您可能会收到类似以下的警告:

警告:session_start():无法发送会话缓存限制器 - 第 4 行 /path/to/file.php 中的标头已发送(输出开始于 /path/to/file:3)

更正了代码,您是否仍想使用会话。如果没有,只需删除session_start();

旁注:重要的是不要在&lt;?php 或任何其他输出(如 HTML、cookie 或字节顺序标记)之前有空格,这也将被视为在标题之前输出。

<?php 
    session_start();
?>

<html>
<body>
<?php

    $connection = mysqli_connect("", "", "", "");

    if (empty($connection))
        $error = "Could not connect to Database, please contact an admin with this code: DBE1";


    $tnews = mysqli_query($connection, "SELECT * FROM Test ORDER BY ID DESC");

    while ($news = mysqli_fetch_array($tnews))
    {
        $title = $news['Title'];
        $pimg = $news['PrevImg'];
        $ptext = $news['PrevText'];
        $text = $news['Text'];
        $img1 = $news['Img1'];

        echo "<h1>" . $title . "</h1><br><br>";
        echo "<p>" . $pimg . "</p>";
        echo "<br><p>" . $ptext . "</p><br><br>";
        echo "<p>" . $text . "</p>";
        echo "<br><p>" . $img1 . "</p>";
        echo $title;
    }
    mysqli_close($connection);

?>
    </body>
</html>

将error reporting 添加到文件顶部,这将发出警告/错误信号,如我的回答中进一步显示的那样。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应该只在暂存阶段完成,而不是在生产阶段。

【讨论】:

  • 谢谢!我会用那个! ;)
【解决方案2】:

我不知道这在您的其他服务器中是如何解决的,但您应该使用点 . 而不是 + 来连接 php 中的字符串。

while ($news = mysqli_fetch_array($tnews))
    {
        $title = $news['Title'];
        $pimg = $news['PrevImg'];
        $ptext = $news['PrevText'];
        $text = $news['Text'];
        $img1 = $news['Img1'];

        echo "<h1>" . $title . "</h1><br><br>";
        echo "<p>" . $pimg . "</p>";
        echo "<br><p>" . $ptext . "</p><br><br>";
        echo "<p>" . $text . "</p>";
        echo "<br><p>" . $img1 . "</p>";
        echo $title;
    }

【讨论】:

  • 我大部分时间都在使用 C++,我想这就是原因! ;D 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
  • 2021-08-10
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多