unicode字符可以在php中设置为参数吗?

bfhwhh0e  于 2021-06-17  发布在  Mysql
关注(0)|答案(0)|浏览(178)

我的表的列名是unicode字符。那么,这些字符可以设置为参数吗?
这是sql:

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

如果我运行这个查询,它会抛出以下错误。
insert query: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;
        }
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题