0

这个很简单,但我今天转了这么多圈,完全迷路了!

我正在尝试根据我在页面顶部设置的变量来获取正确的页面标题和页面内容。IE:

<?php 
$pageIDn = 2;
include($_SERVER['DOCUMENT_ROOT'] .'/includes/functions.php');
content($pageIDn); // the function that queries the DB
include($_SERVER['DOCUMENT_ROOT'] .'/includes/header.php'); ?>

在函数中,我有这个函数/查询:

function content($pageID){
    $query = mysql_query("SELECT * FROM pages WHERE id = 1");
    $title = $query['title'];
    $content = $query['content'];
}

然后在文件中的相关位置,我试图回显变量,即:

<h2><?php echo $content; ?></h2>

我知道我在这里某个地方犯了一个非常愚蠢的错误……只是不确定在哪里。

4

2 回答 2

2

你有三个错误:

  1. 你忘了把你$pageID的查询:

    $query = mysql_query("SELECT * FROM pages WHERE id = {$pageID}");
    
  2. ...获取您的结果:

    $row = mysql_fetch_assoc($query);
    $title = $row['title'];
    $content = $row['content'];
    
  3. ...并返回并捕获您的输出:

    return array($title, $content);
    
    list($title, $content) = content($pageIDn);
    

堆栈溢出:

$pageIDn = 2;
include($_SERVER['DOCUMENT_ROOT'] .'/includes/functions.php');
list($title, $content) = content($pageIDn); // the function that queries the DB
include($_SERVER['DOCUMENT_ROOT'] .'/includes/header.php'); ?>

function content($pageID){
    $query = mysql_query("SELECT * FROM pages WHERE id = {$pageID}");
    $row = mysql_fetch_assoc($query);
    $title = $row['title'];
    $content = $row['content'];
    return array($title, $content);
}

另外,请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-01-06T21:49:39.140 回答
1

你的第一个错误是忘记 MYSQL_ *。使用PDO 第二,你说要抢$pageIDn = 2,但是你根本没有使用。

function content($pageID){
$query = mysql_query("SELECT * FROM pages WHERE id = ".$pageIDn." ");
$row = mysql_fetch_array($query);
$title = $query['title'];
$content = $query['content'];
 } 
于 2013-01-06T21:53:47.737 回答