У меня есть оператор вставки, который содержит несколько целочисленных типов данных для вставки, в то время как большинство из них являются String. С PHP PDO я могу напрямую связать параметры в
execute()
Но здесь я запутался, нужно ли мне связывать параметры, у меня много запросов, и это бесполезная трата временных параметров для всех запросов.
Поскольку связывание PDO по умолчанию обрабатывает все параметры как строку, как я могу связать только 2 параметра IS_EMAIL_VERIFIED
а также TERMS_N_CONDITION
в execute()
массив как целые числа.
$querydata = [
':USER_EMAIL' => $email,
':USER_NAME' => $name,
':USER_PWD' => $pwd,
':TOKEN' => $token,
':IS_EMAIL_VERIFIED' => $isemailverified,
':USER_ROLE' => $user_role,
':STATUS' => $user_status,
':TERM_N_CONDITION' => $terms_n_condition,
':LAST_MODIFIED' => $lastmodified,
':MODIFIED_BY' => $modified_by
];
//reference : https://stackoverflow.com/questions/37367992/php-inserting-values-from-the-form-into-mysql
//https://stackoverflow.com/questions/1290975/how-to-create-a-secure-mysql-prepared-statement-in-php
//https://websitebeaver.com/prepared-statements-in-php-mysqli-to-prevent-sql-injection
//https://phpdelusions.net/pdo_examples/insert
$query = "INSERT INTO registered_users(`USER_EMAIL`,`USER_NAME`, `USER_PWD`,`TOKEN`,`IS_EMAIL_VERIFIED`,`USER_ROLE`,`STATUS`,`TERM_N_CONDITION`,`LAST_MODIFIED`, `MODIFIED_BY`) ". "VALUES (:USER_EMAIL, :USER_NAME, :USER_PWD, :TOKEN, :IS_EMAIL_VERIFIED, :USER_ROLE, :USER_ROLE, :STATUS, :TERM_N_CONDITION, :LAST_MODIFIED, :MODIFIED_BY); ";
//prepare the stament
if (!$stmt = $dbcon_pdo->prepare($query)) {
$response["success"] = 2;
$response["message"] = "insertUserData(): Prepare failed : " . TECH_ERROR_2;
return json_encode($response);
}
$stmt->bindParam(':IS_EMAIL_VERIFIED', $mime);
//Execute the query
if (!($query_result = $stmt->execute($querydata))) {
$response["success"] = 2;
$response["message"] = "insertUserData(): Execute failed : " . TECH_ERROR_2;
return json_encode($response);
}
Задача ещё не решена.
Других решений пока нет …