【问题标题】:php: PDO exception handlingphp: PDO 异常处理
【发布时间】:2016-02-29 07:17:56
【问题描述】:

我有两个 PHP 文件 DBConnector.php

<?php

    class DBConnector {

        const DB_STRING = 'mysql:host=localhost;dbname=test';
        const DB_USER = 'test';
        const DB_PASSWORD = 'qwerty';

        private $connection;

        function __construct() {
            $this->connection = new PDO(self::DB_STRING, self::DB_USER, self::DB_PASSWORD);
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }

        function register_user($user_type, $login, $password, $email, $phone) {
            $insert_user_sql = "insert into users (login, password, email, rating, phones, user_type) 
                        values (:login, password(:password), :email, 0, :phone, :user_type)";

            $sth = $this->connection->prepare($insert_user_sql);

            $sth->execute(array(':login' => $login,
                                ':password' => $password,
                                ':email' => $email,
                                ':phone' => $phone,
                                ':user_type' => $user_type));

        }
    }
?>

和应用程序.php

<?php

    require "DBConnector.php";
    require "UserType.php";

    try {
        $db = new DBConnector();
        $db->register_user(UserType::OWNER, "test", "test", "test@gmail.com", "+111111111111");

    } catch (Exception $e) {
        echo "Error occured " + $e->getMessage();
    }
?>

如果 DBConnector->register_user 中的“插入用户”生成 PDO 异常,我无法在 application.php 中捕获它。 请帮帮我,我做错了什么。

【问题讨论】:

  • 我无法理解这个password(:password)
  • @Saty PASSWORD 是一个 MySQL 散列函数。
  • @WayneWhitty 感谢您更新我的知识

标签: php pdo exception-handling


【解决方案1】:

我发现了问题。 问题出在“加号”符号中,除了“。”在 echo 命令中。 所以打印“0”,而不是“发生错误......”

【讨论】:

    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2017-06-03
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多