0

我被告知我的脚本容易受到攻击并将其更改为 PDO。我已经尝试过了,它正在工作,但在 test.php 页面上显示如下。

Array 
( 
    [name] => matthew 
    [email] => ''@aol.com 
    [order] => shipped 
    [status] => AU1776 
    [attendeesFR] => 1 
)

我如何在没有数组和所有字符的情况下一个接一个地呈现这些数据?

PDO 脚本:

    <?php

    $host=""; // Host name
        $username=""; // Mysql username
        $password=""; // Mysql password
        $db_name=""; // Database name
        $tbl_name="members"; // Table name


        $db = new PDO('mysql:host='.$host.
                          ';dbname='.$db_name.
                          ';charset=UTF-8',
                    $username, $password);
        $stmt = $db->prepare('SELECT * FROM `members` WHERE `username`=:username LIMIT 1');
        $result = $st

        print_r($result);
    ?>
4

1 回答 1

2

PHP 数据对象 (PDO) 扩展定义了一个轻量级、一致的接口,用于在 PHP 中访问数据库。每个实现 PDO 接口的数据库驱动程序都可以将特定于数据库的特性公开为常规扩展函数。也就是说,你可以停止使用 Mysql 函数。相反,您可以使用 PDO 运行 MYSQL 驱动程序或安装在服务器中的任何其他数据库驱动程序。

你可以在这里找到一些信息:http ://www.php.net/manual/en/pdo.construct.php

试试这个:

<?php

$host=""; // Host name
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name=""; // Database name
    $tbl_name="members"; // Table name

    $db = new PDO('mysql:host='.$host.
                      ';dbname='.$db_name.
                      ';charset=UTF-8',
                $username, $password);
    $stmt = $db->prepare('SELECT * FROM `members` WHERE `username`=:username LIMIT 1');
    $stmt->bindValue(':username', $_POST['textfield'], PDO::PARAM_STR);
    $stmt->execute();
    $result = $stmt->fetch(PDO::FETCH_ASSOC);

    print_r($result);
?>
于 2013-04-30T13:28:22.900 回答