【问题标题】:PHP/MySQL to PDO? [closed]PHP/MySQL 到 PDO? [关闭]
【发布时间】:2013-11-07 03:14:46
【问题描述】:

我是 PHP/Mysql 的新手,自然有几个问题。我正在关注关于创建一个简单的动态网站的 youtube 教程,该网站从 MySQL 数据库中提取数据内容,然后在单个 PHP 索引页面上显示内容。我按照本教程使用 PHP/MySQL 连接到数据库,运行查询,使用 fetch_assoc 数组获取查询。但页面正文中不会显示任何内容。在故障排除过程中,有人建议我应该使用 PDO 而不是旧的 MySQL 方法。有人可以破译我当前的“旧” MySQL 代码并将其翻译成正确的 PDO 编码方法,以便我可以学习掌握 PDO,因为这是我现在应该开始理解它的未来 :)

index.php:

<?php
// Setup document:
include('config/setup.php');

?>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $page_title; ?> - test site</title>

<link rel="stylesheet" type="text/css" href="css/styles.css">

</head>

<body>

 <div class="wrap_overall">

    <div class="header">
       <?php include('template/header.php'); ?>
    </div>

    <div class="nav_main">
        <?php include('template/nav_main.php'); ?>
    </div>

    <div class="content">
        <?php //include('content/'.$pg.'.php');
        // the database connection, our query
        $q = "SELECT * FROM pages WHERE page = '$pg' AND status = 1 LIMIT 1";
        $r = mysqli_query($dbc, $q);
         if (!$r) {
         die('Invalid query: ' . mysql_error());
         }

        $page = mysqli_fetch_assoc($r);

        echo '<h1>'.$page['title'].'</h1>';
        echo '<div class="content_body">'.$page['body'].'</div>';

         ?>    
    </div>

    <div class="footer">
        <?php include('template/footer.php'); ?>
    </div>

  </div>

</body>
</html>

setup.php:

<?php ## Setup Document
// host(or location of the database), username, password, database name
//Variables for connecting to your database.
//These variable values come from your hosting account.
$hostname = "localhost";
$username = "atomcmsadmin";
$password = "uniCi2i";
$dbname = "Atom_CMS";
//Connecting to your database
$dbc = mysqli_connect($hostname, $username, $password) OR DIE ("Unable to 
connect to database! Please try again later.");
mysqli_select_db($dbname);
//include('functions/sandbox.php');
if ($_GET ['page'] == '') {
    $pg = 'home';} 
else {
    $pg = $_GET ['page']; }
$page_title = get_page_title($dbc, $pg);
?>

沙盒.php

<?php
// Sandbox Functions

function get_page ($dbc, $pg) {

    // the database connection, our query
    $q = "SELECT title FROM pages WHERE type = 1, page = '$pg' AND status = 1 LIMIT 1";
    $r = mysqli_query($dbc, $q);

    $page = mysqli_fetch_assoc($r);

    echo '<h1>'.$page['title'].'</h1>';
    echo '<div class="content">'.$page['body'].'</div>';        
}
function get_page_title ($dbc, $pg) {

    $q = "SELECT title FROM pages WHERE type = 1, page = '$pg' AND status = 1 LIMIT 1";
    $r = mysqli_query($dbc, $q);

    $page = mysqli_fetch_assoc($r);

    return $page['title'];      
}
?>

【问题讨论】:

  • 没有。到目前为止,没有人会在您没有尝试过的情况下重写您的代码。只是切换到 PDO 也不是有用的建议。它是关于绑定参数的,它可以简化事情并经常隐式地避免 SQL 漏洞利用。 Mysqli 也支持这些,但您仍在使用未经处理的 SQL 插值。先看wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers之类的教程。
  • { 不是在找人为我做这项工作。我确保说出我的问题只是为了指出我正确的方向。 Paulo 给了我一个很好的起点。感谢您的教程,它应该提供更多的见解。

标签: php mysql css pdo content-management-system


【解决方案1】:

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

您需要更改的只是设置连接,请查看教程了解语法

与数据库的交互仍然大体相同

【讨论】:

  • 谢谢! :) 我会看一下教程。它应该会有所帮助。
【解决方案2】:

我认为没有人会为您完成这项工作。但我可以帮你自己做:

从您的代码中,您需要学习这些 PDO 方法:

还可以查看 PHP 手册中的 PDO book。你会比你想象的更容易学习所有的东西!祝你好运!

【讨论】:

  • 这是开启 PDO 的最简单方法。非常有用的信息。
猜你喜欢
  • 2015-09-02
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2019-12-24
  • 2016-10-01
相关资源
最近更新 更多