php - PDO PHP __construct() 警告?

标签 php mysql pdo

我有什么

// Make an attempt to connect to the database
    try {
        // Make our connection
        $DataBaseHandle = new PDO($Host,$Username,$Password,$Table);

            $DataBaseHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES, false); 
                echo 'Connected!<br/>';

    // This will give us a output as an average 
    $SQLQuery = "SELECT 
                CONCAT('$',TRUNCATE(AVG(`payper`),2)) AS `Average Pay`
                FROM `rep_commission`
                ";

foreach ($DataBaseHandle->query($SQLQuery) as $row)
    {
    echo $row["Average Pay"];
    }

    $DataBaseHandle = null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    die();
    }

我正在尝试做什么

我正在重写一堆 MYSQL_ 文件,因为我们都知道它们已被弃用。我也在努力防止笑容被注入(inject)的可能性。脚本将位于员工仪表板后面,但希望采取额外措施,以防我们有恶意的聪明员工。

在这里阅读Are PDO prepared statements sufficient to prevent SQL injection?

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 有窍门???

我也在学习:D

我很好奇我哪里出了问题,因为我得到了

E_WARNING : type 2 --
PDO::__construct() expects parameter 4 to be array, string given 
-- at line 11

还有

E_ERROR : type 1 --
Call to a member function setAttribute() on a non-object
 -- at line 12

我哪里出错了?

另外,如果有人可以告诉我如何使用上面的代码执行 var_dump() 。我很难理解如何正确地做到这一点。尝试阅读它但迷失了:(

最佳答案

我需要改变 来自

$Table = 'dbname=tablename';
$Host ='mysql:host=$Localhost';
$Localhost='localhost';
$Username='';
$Password='';

$Host ="mysql:host=$Localhost;DBName=database";
$Username='test';
$Password='';

还有 来自

 $DataBaseHandle = new PDO($Host,$Username,$Password,$Table);

$DataBaseHandle = new PDO($Host,$Username,$Password);

关于php - PDO PHP __construct() 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32940720/

相关文章:

php - 如何才能让我注册时该帐户能够登录数据库

php - 在 PHP 中对多维数组进行排序

php - 如何告诉 symfony 加载我的自定义 routing.yml 配置

mysql - 使用 html5 独立应用程序使用 deskshell 连接到 mysql

php - PDO PostgreSQL 绑定(bind)错误

php - 散列密码并将其和盐保存到 mysql pdo utf8 编码

php - 如何在不同的分辨率下使用猫头鹰轮播显示不同的图像? WordPress的

mysql - 在sql中使用两个检查约束

php - MySql 中的 REPLACE、INSERT、UPDATE 有什么区别?

php - 如何从 PDO 的 fetchAll 结果中获取列名?