【发布时间】:2026-02-07 05:55:01
【问题描述】:
我目前正在开发一个新的 (WordPress) 网站,该网站应该从外部数据库发布职位空缺。出于测试目的,我建立了一个与外部数据库连接的 WordPress 网站。连接没问题,我还能够加载表格/行并显示数据(如标题、发布日期、内容等)。但我希望将外部数据库中的每篇(新)文章设置为 WordPress 网站中的新文章,以便这些文章在网站上获得自己的 URL/页面。
我已经设置了数据库并显示了一些信息如下:
/* Set-up database */
$servername = "xxx.xxx.xxx.xxx";
$username = "db_user_external";
$password = "db_password_external";
$database = "db_name_external";
/* Connect to database */
$connectdb = mysql_connect($servername, $username, $password, $database);
/* Query for retrieving data */
$recentposts = 'SELECT * FROM fposts WHERE posts.post_type = "vacancy" AND posts.post_status = "publish" ORDER BY post_date DESC LIMIT 9';
mysql_select_db($database);
$showvacancy = mysql_query( $recentposts, $connectdb );
while($row = mysql_fetch_array($showvacancy, MYSQL_ASSOC)) {
echo
"<p><strong>Vacancy Title:</strong> {$row['post_title']}<br>".
"<strong>Date published:</strong> {$row['post_date']}<br>".
"{$row['post_excerpt']}</p>";
}
/* Closing databaseconnection */
mysql_close($conn);
【问题讨论】:
-
请停止使用已弃用的
mysql_数据库库。由于安全问题,它在几年前就停止了,并在 PHP7 中完全删除。为了保护自己免受库中可能存在的安全漏洞的影响,并允许您使用准备好的语句和参数化查询等措施来保护您的数据免受 SQL 注入攻击,我建议您改用mysqli_或PDO库尽早。此外,如果您升级到 PHP7,您的代码将完全停止工作。 -
您应该使用 WP API,而不是静态 mysql 调用来在您的 WordPress 安装中导入数据。包含 WP 安装根目录的 wp_load.php 并使用 API,如函数
wp_insert_post()来创建帖子。 -
谢谢。这是我第一次尝试这个,所以我会调查一下。
标签: php mysql database wordpress