PHP PDO 从数据库中查询代码不显示,仅在源代码中显示

标签 php mysql pdo

我正在使用 PDO 从我的数据库中查询一些数据,但是我有一个包含原始 php 代码的部分没有显示,只在源代码中显示,就好像它正在尝试运行一样。

我去掉了斜杠,并在 pre/code 标签下回显了它,所以我想知道为什么它不会显示在页面上。

数据库

id    name(VARCHAR)           code (LONGTEXT)
1         test         <?php echo /'hello world/'; ?>

PHP文件

<?php
        try {
            $db = new PDO('mysql:host=localhost;dbname=$dbname;charset=utf8', '$username', '$password');
            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

            $stmt = $db->prepare('SELECT name, codeOne FROM table_one WHERE id = :id');

            $stmt->bindParam(':id', '1');

            $stmt->execute();

            while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                    echo $row['name'] . '<pre><code>'. stripslashes($row['codeOne']) .'</code></pre>';
                }

        } catch(PDOException $e) {
            return $e->getMessage();
        };
    ?>

人人皆知

test

查看源代码

test<pre><code><?php echo "Hello";?></code></pre>

最佳答案

那么就用htmlspecialchars()编码你的字符串,例如

echo htmlspecialchars('<?php echo "Hello";?>');

你看到了什么:

<?php echo "Hello";?>

源代码:

&lt;?php echo &quot;Hello&quot;;?&gt;

或者如果你真的想变得很花哨,你可以使用:highlight_string() ,这也为您的字符串提供了一些漂亮的颜色:

echo highlight_string('<?php echo "Hello";?>', TRUE);

关于PHP PDO 从数据库中查询代码不显示,仅在源代码中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558504/

相关文章:

php - 网页样式更改后不起作用

php - 阿拉伯语的 mysql 和 UTF8 问题

java - 是否可以使用 JpaRepository 在 Spring Data JPA 中使用 "TRUNCATE"?或者比标准 deleteAll() 更有效的方法?

php - 3 个表之间的 Symfony Doctrine 关系

mysql - DELETE FROM X WHERE 来自 X.column 的值没有出现在 Y.column 中

PHP正则表达式匹配以特殊字符开头的行

php - 通过 PHP 将 MySQL 记录发送到 iOS

php - 如何制作畅销书排行榜?

php - PDO,检查 WHERE 子句中哪些条件未通过

php - MySql PDO - 使用 GROUP BY、ORDER BY 和 INNER JOIN 时如何获取 "newest rows from group"?