我最近在IIS 7上安装了WordPress,并将其连接到SQL Server 2008R2。安装进行得很顺利。
马上,我就可以看到on post出现了(仅在计数中),但没有列出任何内容;我添加了一些帖子。
在“管理”菜单的“帖子”下,我看到有六篇已发布的帖子“已发布(6)”。但是,下面的列表为空。还尝试通过选择类别返回在网站上查看这些内容
Nothing Found
抱歉,但找不到请求的存档的结果。也许搜索有助于找到相关的帖子。
我已经重新安装了数据库,重写了PHP/SQL文件,并重新安装了WP。问题仍然存在。
我尝试了设置/永久链接建议here 和没有变化。
建议here 与无法写入相关。htaccess文件。这对我来说不是问题,我也没有看到无法保存的错误。(为了验证,我保存、退出、导航到同一永久链接页面,并保存了我的设置)。
我甚至将Permalinks设置为默认值并删除了Web。配置重写规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
没有变化。(将其添加回)。
我在wp config中设置savequerys=TRUE。php和我可以在日志文件中看到一些帖子的内容。
嗨,你好!我白天是自行车信使,晚上是有抱负的演员,这是我的博客。我住在洛杉矶,有一只很棒的狗叫杰克。。。
已启用php\\u sqlsrv\\u 53\\u ts\\u vc9。dll扩展并禁用了phpsqlsrv。动态链接库
我看到过其他帖子提到,由于系统可能检测到潜在的SQL注入攻击,因此更改了一些安全设置。但是,这些帖子与Apache相关的安装相关,在我的版本中找不到任何引用。
我用WP 3.21重试了这个问题-同样的问题。
我可以点击月份链接(3月),然后看到未分类旁边的帖子计数。单击链接后,我再次看到Nothing Found消息。
使用3.31重试,并注意到Windows/Temp/php53\\u错误中的以下内容。日志:
[2012年3月7日21:00:51 UTC]WordPress数据库错误42000:[Microsoft][SQL Server Native Client 10.0][SQL Server]在“wp\\U users”附近的语法不正确。对于查询,请从INFORMATION\\u SCHEMA中选择TABLE\\u NAME。表名为“wp\\u用户”的表由display\\u setup\\u form、pdo\\u wpdb->query、pdo\\u wpdb->post\\u query、pdo\\u wpdb->print\\u error生成
安装后,跟踪到wp content\\mu plugins\\wp db abstraction\\translations\\sqlsrv\\translations。php。
在本例中,在表名周围添加额外的单引号是导致错误的原因,因此我注释掉了这行:
// SHOW TABLES
if ( strtolower($query) === \'show tables;\' ) {
$query = str_ireplace(\'show tables\',"select name from SYSOBJECTS where TYPE = \'U\' order by NAME",$query);
}
if ( stripos($query, \'show tables like \') === 0 ) {
$end_pos = strlen($query);
$param = substr($query, 17, $end_pos - 17);
// quoted with double quotes instead of single?
$param = trim($param, \'"\');
if($param[0] !== "\'") {
//$param = "\'$param\'"; <----------- commented out
}
$query = \'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE \' . $param;
}
现在,SQL语句读取
从INFORMATION\\u SCHEMA中选择TABLE\\u NAME。TABLE\\u名称类似“wp\\u users”的表
而不是
从INFORMATION\\u SCHEMA中选择TABLE\\u NAME。TABLE\\u名称如“wp\\u users”的表
重试安装-问题仍然存在,但这次没有SQL错误消息。
-- Update --
忘了提一下我正在用这个
WP DB Abstraction (由…暗示)。。。
wp content\\mu plugins\\wp db abstraction\\translations\\sqlsrv\\translations。php
。。。在上面有没有其他方法可以让它与SQL Server一起工作?