php - 插入数据库不起作用
问题描述
我试图尽可能简化这一点,以了解正在发生的事情,但它仍然无法正常工作。它没有显示任何错误,但没有任何内容添加到数据库中。
引导文件:
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' => [ ]
]
];
解决方案
根据http://php.net/manual/en/pdo.connections.php上的手册,您的连接字符串缺少“mysql:”。
尝试:
return new PDO("mysql:".$config['connection']
等等
此外,尝试在它周围放置一个 try-catch 块,并显示来自它可能抛出的任何异常的消息。
推荐阅读
- java - Kafka Consumer 输出过多的 DEBUG 语句
- azure - 如何在 Azure cosmos DB 中使用双引号保存数据
- c++ - 使用 sftp_open() 在 C++ 中使用 SFTP libssh 将文件从本地复制到远程时,文件返回 NULL 值
- bootloader - 如何从保护模式(或 C 代码)调用 PXE API?
- java - AnimationDrawable 在片段中不起作用。
- ios - GoogleService-Info.plist 文件中的 iOS Firebase IS_ADS_ENABLED 标志
- java - 错误的中位数答案
- variables - Pentaho 数据集成 setVariable 不起作用
- javascript - 使用 Javascript 中的对象对数组项进行分组
- android - TouchImageView 在捏合手势之后才显示图像