【发布时间】:2022-01-25 09:00:16
【问题描述】:
请原谅我,因为我已经多年没有在 php 中工作了。我正在获取一些旧代码以重新开始工作,但遇到了一个奇怪的问题。
我正在用 wordpress 编写 php。在编辑代码时,我注意到 php 标记在以下内容之后关闭:
<?php
$databaseHost = "Localhost";
$databaseName = "testDB";
$databaseUser = "TESTUSER";
$databasePassword = "TESTPASS";
$coin_id = (isset($_POST['coin_id'])) ? $_POST['coin_id'] : '';
try {
$db = new PDO('mysql:host=' . $databaseHost . ';dbname=' . $databaseName . ';charset=utf8', $databaseUser, $databasePassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$request = "SELECT
_7UR_participants_database.city,
_7UR_participants_database.state,
_7UR_participants_database.country,
_7UR_participants_database.zip,
_7UR_participants_database.coin_id,
FROM _7UR_participants_database GROUP BY _7UR_participants_database.coin_id ASC";
$stmt = $db->query($request);
$item_info = $stmt->fetchAll();
} catch (PDOException $e) {
echo "Exception: " . $e->getMessage();
exit;
} // Try / catch end
?>
之后的所有内容> $db- 不包含在 php.ini 文件中。 php 标记以最后一个 > 结束。我需要逃避角色或类似性质的东西吗?
【问题讨论】:
-
我并没有真正理解这个问题。你是说
$db->关闭了 PHP 上下文?它不会。然后还有其他一些抱怨。但是,如果您只拥有$db->而没有定义方法或属性,则会出现语法错误。 -
是的,正如您提到的,它似乎正在关闭标签。 $db-> 之后还有更多内容。为简洁起见,我省略了它,但我会在看到它有多令人困惑时对其进行编辑。
-
不,它不会关闭那里的 php 上下文。请向我们展示更多上下文(之后的代码)以及您认为它被关闭的原因。
-
我已经编辑了代码。有问题的 > 以外的所有内容都以纯文本形式显示在网页上。澄清 - setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);网页上显示及其他内容,好像它已关闭 php 标签。
-
如果您在 WP 中的帖子的内容块中添加了该代码,那么不,它不会起作用。 Wordpress 只是输出内容,它不会作为 PHP 执行。