Могут ли символы UNICODE быть установлены в качестве параметров в php? - PullRequest
0 голосов
/ 30 декабря 2018

Имена столбцов в моей таблице указаны в UNICODE символах.Итак, эти символы могут быть установлены в качестве параметров?

Это SQL:

INSERT INTO सामान्य_ग्यान
SET मिति = :मिति, शीर्षक = :शीर्षक, विकल्प_क = :विकल्प_क, विकल्प_ख = :विकल्प_ख, विकल्प_ग = :विकल्प_ग,
विकल्प_घ = :विकल्प_घ, सही_जवाफ = :सही_जवाफ

И если я выполню этот запрос, он выдаст следующую ошибку.

Запрос вставки: SQLSTATE [42000]:Синтаксическая ошибка или нарушение доступа: 1064 У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с ':मिति, शीर्षक = :शीर्षक, विकल्प_क' в строке 1

Вот мой код вставки:

final protected function insert($data, $is_die = false){
        try {
            $this->sql = "INSERT INTO ";
            if (!isset($this->table) || empty($this->table)) {
                throw new Exception("Table not set");
            }
            $this->sql .= $this->table;
            $this->sql .= " SET ";
            if (isset($data) && !empty($data)) {
                if (is_array($data)) {
                    $temp = array();
                    foreach ($data as $column_name => $value) {
                        $str = $column_name." = :".$column_name;
                        $temp[] = $str;
                    }
                    $this->sql .= implode(', ', $temp);
                } else {
                    $this->sql .= $data;
                }
            }
            $this->stmt = $this->conn->prepare($this->sql);
            if (isset($data) && !empty($data) && is_array($data)) {
                foreach ($data as $column_name => $value) {
                    if (is_int($value)) {
                        $param = PDO::PARAM_INT;
                    } elseif (is_bool($value)) {
                        $param = PDO::PARAM_BOOL;
                    } elseif (is_null($value)) {
                        $value = null;
                        $param = PDO::PARAM_INT;
                    } else {
                        $param = PDO::PARAM_STR;
                    }
                    if ($param) {
                        $this->stmt->bindValue(":".$column_name, $value, $param);
                    }
                }
            }
            if ($is_die) {
                debugger($this->sql, true);
                echo $this->sql;

            }
            /*error*/
            $this->stmt->execute();
            /*error*/
            return $this->conn->lastInsertId();
        } catch (PDOException $e) {
                error_log(
                    date('Y-m-d h:i:s A').", Insert Query: ".$e->getMessage()."\r\n"
                    , 3, ERROR_PATH.'error.log');
                return false;
            } catch (Exception $e) {
                error_log(
                    date('Y-m-d h:i:s A').", General: ".$e->getMessage()."\r\n"
                    , 3, ERROR_PATH.'/error.log');
                return false;
        }
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...