我正在尝试学习PHP PDO。我刚刚创建了一个将一些数据插入数据库的函数。但它给了我一些错误,无法插入数据。
这是我在action.php页面中的代码
$query = "INSERT INTO `details` (`name`, `email`, `pass`) VALUES(?,?, ?)";
$params = array($name, $email, $pass);
$result = $connect -> query($query, $params);
这是config.php中的代码
public function query($query, $params){
$stmt = self::$db->prepare($query);
$this -> result = $stmt -> execute($params);
self::$db = NULL;
return $this -> result;
}
这会返回错误
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: mode must be an integer' in E:\wamp\www\test\pdo_test\action.php on line 14
我只是这个领域的初学者。另一个代码适用于我并插入数据。这是
action.php的
$query = "INSERT INTO `details` (`name`, `email`, `pass`) VALUES('$name', '$email', '$pass')";
$result = $connect ->query($query);
的config.php
public function query($query){
$this->result = self::$db->query($query);
self::$db = NULL;
return $this -> result;
}
我正在尝试使用prepare()
和execute()
进行转换。有人请帮忙。提前致谢
答案 0 :(得分:0)
我建议你采用这种方法,https://github.com/colshrapnel/thebestpdowrapper 我写的是你的确切案例。
self::$db = NULL;
虽然您的代码将保持清晰简洁:
$query = "INSERT INTO `details` (`name`, `email`, `pass`) VALUES(?,?, ?)";
$params = array($name, $email, $pass);
$result = DB::prepare($query)->execute($params);
至于您在问题中的特定问题,很可能$ connection包含PDO实例而不是您自己的类实例,该错误消息明确暗示。