如何从基于url的php中的mysql获取数据?

时间:2011-04-16 11:10:41

标签: php mysql

我在mysql db中有一个页面表,其中包含'page_name','title',content,'author'字段。我想用像http://www.domain.com/index.php?page=page_name这样的php来获取它。我该怎么做 ?请帮忙

3 个答案:

答案 0 :(得分:4)

使用超级全局$ _GET数组访问GET参数:

$pagename = $_GET['page'];

然后为数据库编写查询。请注意,您必须转义来自外部的每个数据:

$sql = "SELECT * FROM page_table WHERE page_name = '%s' LIMIT 1";
$sql = sprintf(%sql, mysql_real_escape_string($pagename));

然后执行查询并检查它是否有效。

$result = mysql_query($sql);
if(!$result) {
    // error occured
}

使用函数mysql_fetch_assoc访问数据:

$data = mysql_fetch_assoc($result);

您现在可以访问此关联数组中的所有数据:

echo $data["title"]; 

答案 1 :(得分:1)

  1. 连接到数据库服务器并选择数据库(例如使用mysql_connectmysql_select_db
  2. 使用$_GET数组
  3. 中的值创建SQL查询
  4. 将查询发送到数据库(例如使用mysql_query
  5. 检索结果(例如,使用mysql_fetch_array
  6. 显示结果中的数据(例如,使用echo

答案 2 :(得分:1)

你可以这样做:

<?php
   // get page
   $page_name = $_GET["page"];

   // Do the query
   $q = mysql_query("SELECT * FROM `pages_table` WHERE `page_name` LIKE '$page_name'");
   // loop the get the results
   while($result = mysql_fetch_assoc($q){
       $db_title = $result["title"];
       $db_content = $result["content"];
       $db_author = $result["author"];
   }

   //put the data together and echo
   echo "
      <h1>$db_title</h1>
      <p>$db_content</p>
      <h3>Author: $db_author</h3>
   ";

?>

不要忘记先连接数据库!并对$_GET[]进行一些sql注射检查!!

修改
取决于你的PHP安装。如果您没有启用魔术引号,则可以在执行查询时执行类似$page_nameClean = addslashes($page_name);的操作,或者如果您知道只使用数字来获取页面(例如:domain.com?page=1232)可以检查一下:

if(is_numeric($page_name)){
   // get the page out of the DB
}else{
   // Show an error message
}

或者看看这个:avoid code injections