数据库连接问题,无法从数据库中获取数据

问题描述:

<?php 
/* 
Template Name: test 
*/ 

// edit these values to match your database information 
$server = "localhost"; 
$user = "root"; 
$password = ""; 
$db = "_wp201"; 

$con = mysql_connect($localhost,$user,$password); 

if (!$con) { 
    die("database connection error"); 
} else { 

mysql_select_db($db, $con); 

// example query 
$result = mysql_query("SELECT * FROM wp_posts 
WHERE post_author='1'"); 

// show all posts by author 1 (admin) 
while($row = mysql_fetch_array($result)) 
    { 
    if($row['post_status'] == "publish") { 
    echo "".$row['post_title']." <br />"; 
    } 
    } 

} 
mysql_close($con); 
?> 

我在wordpress中创建了一个自定义注册页面。所以我创建了一个测试页面来测试数据库连接。但是没有显示出来。为什么?请帮忙。 (所有服务器进入是正确的)数据库连接问题,无法从数据库中获取数据

尝试mysql_fetch_assoc代替mysql_fetch_array

噢,你肯定有包含这些数据的数据库的任何行?

+0

是的,我敢肯定。我再次检查数据库。 – Pey 2013-03-21 07:56:37

+0

所以没有打印在页面上?检查没有打印空值的源代码,试试'var_dump($ result);' – Dediqated 2013-03-21 08:01:29

+0

是因为Wordpress有自己的数据库集成' – Pey 2013-03-21 08:08:00

停止使用mysql_*函数,它们将自PHP 5.5.0起弃用。


改为使用WordPress $wpdb

$myrows = $wpdb->get_results( 
    "SELECT * FROM $wpdb->posts 
    WHERE post_author=1" 
); 

WordPress的方式使用WP_Query做到这一点:

<?php 
/* 
Template Name: test 
*/ 

$myquery = new WP_Query(array(
    'author' => 1, 
    'post_status' => 'publish' 
)); 

while($myquery->have_posts()): 
    $myquery->the_post(); 
    echo get_the_title() . '<br />'; 
endwhile; 
+0

我试过用代码代替它提供,结果仍然是一样的。 – Pey 2013-03-21 08:31:30

+0

做一个'var_dump($ myrows);'告诉我结果是什么。 – RRikesh 2013-03-21 09:15:44

+0

我在哪里放置这段代码?对不起,我是编程新手。 – Pey 2013-03-21 09:33:16