首页 > 解决方案 > 插入数据库不起作用

问题描述

我试图尽可能简化这一点,以了解正在发生的事情,但它仍然无法正常工作。它没有显示任何错误,但没有任何内容添加到数据库中。

引导文件:

class Connection {
    public static function make($config){
        return new PDO(
            $config['connection'].';dbname='.$config['name'],
            $config['username'], $config['password'], $config['options']
        );  
    }
}

class QueryBuilder {
    protected $pdo;

    public function __construct($pdo){
        $this->pdo = $pdo;
    }

    public function insert($table, $paramater, $value){     
        $statement = $this->pdo->prepare("insert into $table ($paramater) values($value)");
        $statement->execute();
    }
}

return new QueryBuilder(Connection::make($config['database']));

发布请求后的其他文件:

$query = require 'bootstrap.php';

$query->test('todos', 'description', 'lorem ipsum');

我的$config数组是这个

return [
  'database' => [
    'name' => 'mytodo', 
    'username' => 'root', 
    'password' => '', 
    'connection' => 'mysql:host=ip', 
    'options' => [ ] 
  ]
]; 

标签: phppdo

解决方案


根据http://php.net/manual/en/pdo.connections.php上的手册,您的连接字符串缺少“mysql:”。

尝试:

return new PDO("mysql:".$config['connection'] 等等

此外,尝试在它周围放置一个 try-catch 块,并显示来自它可能抛出的任何异常的消息。


推荐阅读