- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<分区>
我正在尝试使用此命令添加一些文本,包含在我的 php 文件中:
$sql = "INSERT INTO $this->table_name_category (name, marker_icon) VALUES ('".$name."', '".$marker_icon."')";
在英文字符中一切看起来都很好,但在希腊字符中,解析的文本正在转换为问号“???????”
还有什么我必须注意的吗?有没有办法告诉 INSERT 命令使用 UTF8 以支持希腊字符?
提前致谢。
我的数据库设置为 utf8_unicode_ci(表也是)。
我的代码是:
<?php
class Store_locator_wpress_db {
var $wpdb;
var $table_name;
var $table_name_category;
function Store_locator_wpress_db() {
global $wpdb;
$this->wpdb = $wpdb;
$this->table_name = $wpdb->prefix . "store_wpress";
$this->table_name_category = $wpdb->prefix . "store_wpress_category";
$this->table_name_category2 = $wpdb->prefix . "store_wpress_category2";
}
function setup_tables() {
self::create_tables();
self::update_stores_table();
//self::update_categories_table();
}
function update_stores_table() {
$sql = "DESCRIBE $this->table_name";
$result = $this->wpdb->get_results($sql, 'ARRAY_N');
for($i=0; $i<count($result); $i++) {
$field[] = $result[$i][0];
}
if(!in_array('category_id',$field)) {
$sql = "ALTER TABLE `$this->table_name` ADD `category_id` INT NOT NULL AFTER `post_id`";
$this->wpdb->query($sql);
}
if(!in_array('category2_id',$field)) {
$sql = "ALTER TABLE `$this->table_name` ADD `category2_id` INT NOT NULL AFTER `category_id`";
$this->wpdb->query($sql);
}
if(!in_array('country',$field)) {
$sql = "ALTER TABLE `$this->table_name` ADD `country` VARCHAR( 60 ) NOT NULL AFTER `email`";
$this->wpdb->query($sql);
}
if(!in_array('city',$field)) {
$sql = "ALTER TABLE `$this->table_name` ADD `city` VARCHAR( 60 ) NOT NULL AFTER `email`";
$this->wpdb->query($sql);
}
}
function update_categories_table() {
$sql = "DESCRIBE $this->table_name_category";
$result = $this->wpdb->get_results($sql, 'ARRAY_N');
for($i=0; $i<count($result); $i++) {
$field[] = $result[$i][0];
}
if(!in_array('marker_icon',$field)) {
$sql = "ALTER TABLE `$this->table_name_category` ADD `marker_icon` VARCHAR( 200 ) NOT NULL AFTER `name`";
$this->wpdb->query($sql);
}
}
function create_tables() {
$sql = "CREATE TABLE IF NOT EXISTS " . $this->table_name . " (
`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user_id` BIGINT NOT NULL ,
`post_id` BIGINT NOT NULL ,
`category_id` INT NOT NULL ,
`name` VARCHAR( 160 ) NOT NULL ,
`logo` VARCHAR( 160 ) NOT NULL ,
`address` VARCHAR( 160 ) NOT NULL ,
`lat` VARCHAR( 20 ) NOT NULL ,
`lng` VARCHAR( 20 ) NOT NULL ,
`url` VARCHAR( 160 ) NOT NULL ,
`description` TEXT NOT NULL ,
`tel` VARCHAR( 30 ) NOT NULL ,
`email` VARCHAR( 60 ) NOT NULL ,
`created` DATETIME NOT NULL
) ENGINE = MYISAM;";
$this->wpdb->query($sql);
$sql = "CREATE TABLE IF NOT EXISTS " . $this->table_name_category . " (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 120 ) NOT NULL,
`marker_icon` VARCHAR( 200 ) NOT NULL
) ENGINE = MYISAM ;";
$this->wpdb->query($sql);
$sql = "CREATE TABLE IF NOT EXISTS " . $this->table_name_category2 . " (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 120 ) NOT NULL
) ENGINE = MYISAM ;";
//$this->wpdb->query($sql);
}
function get_locations($criteria) {
$lat = $criteria['lat'];
$lng = $criteria['lng'];
$page_number = $criteria['page_number'];
$nb_display = $criteria['nb_display'];
$distance_unit = $criteria['distance_unit'];
$category_id = $criteria['category_id'];
$category2_id = $criteria['category2_id'];
$radius_id = $criteria['radius_id'];
$start = ($page_number*$nb_display)-$nb_display;
if($distance_unit=='miles') $distance_unit='3959'; //miles
else $distance_unit='6371'; //km
$sql = "SELECT s.*, c.marker_icon, c.name category_name,
( $distance_unit * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) ) AS distance
FROM ".$this->table_name." s
LEFT JOIN ".$this->table_name_category." c
ON s.category_id=c.id
WHERE 1 ";
if($category_id!='') $sql .= " AND category_id='$category_id'";
if($category2_id!='') $sql .= " AND category2_id='$category2_id'";
if($radius_id!='') $sql .= " HAVING distance<='".$radius_id."'";
if($lat!=''&&$lng!='') $sql .= " ORDER BY distance";
else $sql .= " ORDER BY id DESC";
if($nb_display!='') $sql .= " LIMIT $start, $nb_display";
$locations = $this->wpdb->get_results($sql, 'ARRAY_A');
return $locations;
}
function return_nb_stores($criteria=array()) {
$category_id = $criteria['category_id'];
$sql = "SELECT count(*) as nb
FROM $this->table_name WHERE 1";
if($category_id!='') $sql .= " AND category_id='$category_id'";
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
return $results[0];
}
function return_stores($criteria=array()) {
$id = $criteria['id'];
$post_id = $criteria['post_id'];
$category_id = $criteria['category_id'];
$sql = "SELECT s.*, c.marker_icon
FROM $this->table_name s
LEFT JOIN ".$this->table_name_category." c
ON s.category_id=c.id
WHERE 1";
if($id>0) $sql .= " AND s.id='$id'";
if($post_id>0) $sql .= " AND s.post_id='$post_id'";
if($category_id>0) $sql .= " AND s.category_id='$category_id'";
$sql .= ' ORDER BY s.created DESC';
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
return $results;
}
function return_categories($criteria=array()) {
$id = $criteria['id'];
$sql = "SELECT * FROM $this->table_name_category WHERE 1";
if($id>0) $sql .= " AND id='$id'";
$sql .= ' ORDER BY name';
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
return $results;
}
function return_categories2($criteria=array()) {
$id = $criteria['id'];
$sql = "SELECT * FROM $this->table_name_category2 WHERE 1";
if($id>0) $sql .= " AND id='$id'";
$sql .= ' ORDER BY name';
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
return $results;
}
function return_nb_stores_by_category() {
$sql = 'SELECT c.id, count(*) nb
FROM '.$this->table_name.' s, '.$this->table_name_category.' c
WHERE s.category_id=c.id GROUP BY s.category_id';
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
for($i=0; $i<count($results); $i++) {
$storesCat[$results[$i]['id']] = $results[$i]['nb'];
}
return $storesCat;
}
function return_nb_stores_by_category2() {
$sql = 'SELECT c.id, count(*) nb
FROM '.$this->table_name.' s, '.$this->table_name_category2.' c
WHERE s.category2_id=c.id GROUP BY s.category2_id';
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
for($i=0; $i<count($results); $i++) {
$storesCat[$results[$i]['id']] = $results[$i]['nb'];
}
return $storesCat;
}
function delete_store($id) {
$user_id = get_current_user_id();
$sql = "SELECT * FROM $this->table_name WHERE id='$id' AND user_id='$user_id'";
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
if(count($results)>0) {
$sql = "DELETE FROM $this->table_name WHERE id='%d'";
$this->wpdb->query($this->wpdb->prepare($sql, $id));
return 'The store has been deleted.';
}
else {
return 'Only the author of this store, can delete it.';
}
}
function delete_category($id) {
$sql = "SELECT * FROM $this->table_name WHERE category_id='$id'";
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
if(count($results)>0) {
return "You cannot delete this category because it's containing ".count($results)." store(s). Please delete the stores first then try again.";
}
else {
$sql = "DELETE FROM $this->table_name_category WHERE id='%d'";
$this->wpdb->query($this->wpdb->prepare($sql, $id));
return 'The category has been deleted.';
}
}
function delete_category2($id) {
$sql = "SELECT * FROM $this->table_name WHERE category2_id='$id'";
$results = $this->wpdb->get_results($sql, 'ARRAY_A');
if(count($results)>0) {
return "You cannot delete this category because it's containing ".count($results)." store(s). Please delete the stores first then try again.";
}
else {
$sql = "DELETE FROM $this->table_name_category2 WHERE id='%d'";
$this->wpdb->query($this->wpdb->prepare($sql, $id));
return 'The category has been deleted.';
}
}
function update_store($criteria) {
$sql = "UPDATE $this->table_name SET
post_id='".$criteria['post_id']."', category_id='".$criteria['category_id']."', category2_id='".$criteria['category2_id']."',
name='".$criteria['name']."', logo='".$criteria['logo']."', url='".$criteria['url']."',
address='".$criteria['address']."', lat='".$criteria['lat']."', lng='".$criteria['lng']."',
description='".$criteria['description']."', tel='".$criteria['tel']."', email='".$criteria['email']."'
WHERE id='".$criteria['id']."'";
$this->wpdb->query($sql);
}
function update_category($criteria) {
$sql = "UPDATE $this->table_name_category SET name='".$criteria['name']."', marker_icon='".$criteria['marker_icon']."'
WHERE id='".$criteria['id']."'";
$this->wpdb->query($sql);
}
function update_category2($criteria) {
$sql = "UPDATE $this->table_name_category2 SET name='".$criteria['name']."'
WHERE id='".$criteria['id']."'";
$this->wpdb->query($sql);
}
function add_store($criteria) {
$sql = "INSERT INTO $this->table_name
(user_id, post_id, category_id, category2_id, name, logo, address, lat, lng, url, description, tel, email, created)
VALUES ('".$criteria['user_id']."', '".$criteria['post_id']."', '".$criteria['category_id']."', '".$criteria['category2_id']."', '".$criteria['name']."', '".$criteria['logo']."', '".$criteria['address']."', '".$criteria['lat']."', '".$criteria['lng']."',
'".$criteria['url']."', '".$criteria['description']."', '".$criteria['tel']."', '".$criteria['email']."', '".date('Y-m-d H:i:s')."')";
//echo $sql.'<br>';
$this->wpdb->query($sql);
}
function add_category($criteria=array()) {
$name = $criteria['name'];
$marker_icon = $criteria['marker_icon'];
$sql = "INSERT INTO $this->table_name_category (name, marker_icon) VALUES ('".$name."', '".$marker_icon."')";
$this->wpdb->query($sql);
}
function add_category2($criteria=array()) {
$name = $criteria['name'];
$sql = "INSERT INTO $this->table_name_category2 (name) VALUES ('".$name."')";
$this->wpdb->query($sql);
}
}
?>
我对自定义 CSS 或在将图像作为 Logo 上传到页面时使用编码 block 有疑问。我正在为我的网站使用 squarespace,我需要帮助编码我的 Logo 以使其适合每个页面。一个选项是使用自
如 encoding/json 包文档中所述, Marshal traverses the value v recursively. If an encountered value implement
我必须做一些相当于Java中的iconv -f utf8 -t sjisMS $INPUT_FILE的事情。该命令在 Unix 中 我在java中没有找到任何带有sjisMS的编码。 Java中有Sh
从 PHP 5.3 迁移到 PHP 5.6 后,我遇到了编码问题。我的 MySQL 数据库是 latin1,我的 PHP 文件是 windows-1251。现在一切都显示为“ñëåäíèòå àäðå
我有一个 RScript文件(我们称之为 main.r ),它引用了另一个文件,使用以下代码: source("functions.R") 但是,当我运行 RScript 文件时,它提示以下错误:
我无法设法从 WSDL 创建 RPC/编码风格的代码 - 有谁知道哪个框架可以做到这一点? 带有 adb 和 xmlbeans 映射的 Axis2 无法正常工作(无法处理响应中的肥皂编码)直接使用 X
安装了最新版本的Node.Js()和npm包**(1.2.10)**当我运行 Express 命令来生成项目时,它向我抛出以下错误 buffer.js:240 switch (encoding &
JavaScript中有JSON编码/解码base64编码/解码函数吗? 最佳答案 是的,btoa() 和 atob() 在某些浏览器中可以工作: var enc = btoa("this is so
>>> unicode('восстановление информации', 'utf-16') Traceback (most recent call last): File "", line
我当然熟悉 java.net.URLEncoder 和 java.net.URLDecoder 类。但是,我只需要 HTML 样式的编码。 (我不想将 ' ' 替换为 '+' 等)。我不知道任何只做
有一个非常简单的 SSIS 包: OLE DB Source 通过 View 获取数据(数据库表 nvarchar 或 nchar 中的所有字符串列)。 派生列,用于格式化现有日期并将其添加到数据集(
我正在使用一个在 Node 中进行base64编码的软件,如下所示: const enc = new Buffer('test', 'base64') console.log(enc) 显示: 我正
我试图将带有日语字符的数据插入到 oracle 数据库中。事情是保存在数据库中的是一堆倒置的问号。我该如何解决这个问题 最佳答案 见 http://www.errcode.net/blogs/?p=6
当我在 java 中解压 zip 文件时,我发现文件名中出现了带有重音字符的奇怪行为。 西索: Add File user : L'equipe Technique -- Folder : spec
在网上冲浪我找到了 ExtJS 的 Ext.Gantt 插件,该扩展有一个特殊的编码。任何人都知道如何编码那样或其他复杂的形式。 Encoded Gantt Chart 最佳答案 它似乎被 Dean
我正在用C语言做一个编码任务,我进展顺利,直到读取符号并根据表格分配相应的代码的部分。我必须连接几个代码,直到它们的长度达到 32 位,为此我必须将它们写入一个文件中。这种写入文件的方法给我带来了很多
我有一个外部链接的 javascript 文件。在那个 javascript 里面,我有这个功能: function getMonthNumber(monthName){ monthName = mo
使用mechanize,我检索到一个网页的源页面,其中包含一些非ASCII字符,比如汉字。 代码如下: #using python2.6 from mechanize import Browser b
我有一个包含字母 ø 的文件。当我用这段代码 File.ReadLines(filePath) 读取它时,我得到了一个问号而不是它。 当我像这样添加编码时 File.ReadLines(filePat
如何翻译下面的字符串 H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c} 进入 H. P. Dembinski,
我是一名优秀的程序员,十分优秀!