我正在开发一个非常小的 PHP 和 MySQL 应用程序。 我有一个叫做用户的分类, 用于操作数据库中的用户数据, 数据库中包含一个创建用户方法, 如下所示 :
/**
* Creates a new user record in the users table for a new user
*
* @return void
*/
public function createUser($user_id, $user_name, $location_id) {
// query to execute
$query = "INSERT INTO
users(user_id,user_name,location_id)
VALUES(:id,:name,:location)";
// query parameters
$parameters = array (
:id => $user_id,
:name => $user_name,
:location => $location_id
);
$databaseInteractions = new DatabaseInteractions();
$databaseInteractions->executeUpdate($this->_connection, $query, $parameters);
}
我还有另一类,其中将包含与数据库互动的通用方法,如上述代码所示,数据库称为数据库互动。本类包含一种方法,即执行 DML 查询的更新日期,如下文所示:
/**
* A function for executing DML queries using a prepared statement
* @param $connection The database connection object
* @param $query The dml query to be executed
* @param $parameters The input parameters for the query as a hash
*/
public function executeUpdate($connection,$query, $parameters) {
if ($stmt = $connection->prepare($query)) {
//bind query parameters
foreach ($parameters as $key => $value) {
$stmt->bindParam($key, $value);
}
//begin transaction
$connection->beginTransaction();
$stmt->execute();
$stmt->closeCursor();
//commit transaction
$connection->commit();
}
}
当我在下面显示的用户类中调用创建用户方法时,
$user->createUser(3,"NewUser",1);
数据库中插入的数值如下:-
user_id user_name location_id
1 1 1
我花了一些时间调试代码, 但仍然无法找到发生这种情况的原因 。 用户_ id 是 PK, 是一个intt。 用户_ name is varchar, 位置_ id is FK and int 。
我是爪哇开发商,是PHP的新开发商,因此,与php命名惯例、编码标准等有关的任何投入总是受欢迎的。