经过多次研究后,我仍然遇到了问题。
首先,
我试图通过从PHP文件生成查询但在数据库中插入一些数据,但这不起作用。
所以我尝试在PHPMyAdmin
上手动执行查询并且它有效。然后,我开始研究,并且我发现的最可能的解释是,我的编码是不一样的。
我的信息是UTF-8
和我的表latin1_swedish_ci
但是出现了一个非常糟糕的问题,我无法修改数据库。 :(
现在,
我正在寻找一种方法将UTF-8转换为latin1_swedish_ci
文件中的PHP
。
我希望有人可以帮助找到解决方案,或者可以定位我的研究。
这是我的代码
function insertGrp($rawData)
{
//Format data form best use
$data = self::formatFormData($rawData);
$insertGrpReq ="INSERT INTO `fwsgup` (`KGROUP`, `KUSER`, `KDATES`, `FDATEE`, `PSPY`) VALUES ('";
//First part of request
$groups = $data["userGroup"];
//Separator for concat
$separator = "', '";
//Instance of db
$db = new DBInteract();
//foreach group needed to be removed
foreach($groups as $group)
{
//converting dates for database
$tmp = strtotime($group[1]);
$startDate =date('Ymd', $tmp);
$tmp = strtotime($group[2]);
$endDate =date('Ymd', $tmp);
//DEBUG for see query
//output example INSERT INTO `fwsgup` (`KGROUP`, `KUSER`, `KDATES`, `FDATEE`, `PSPY`) VALUES ('gAdmin', 'fana', '20170619', '20190619', '20171907133741faan');
print($insertGrpReq.$group[0].$separator.$data["userInfo"]["userID"].$separator.$startDate.$separator.$endDate.$separator.date("YdmHis")."faan');</br>");
//here's my problem
$db->query($insertGrpReq.iconv("UTF-8", "ISO-8859-1", $group[0]).$separator.iconv("UTF-8", "ISO-8859-1", $data["userInfo"]["userID"]).$separator.iconv("UTF-8", "ISO-8859-1", $startDate).$separator.iconv("UTF-8", "ISO-8859-1", $endDate).$separator.iconv("UTF-8", "ISO-8859-1//TRANSLIT", date("YdmHis")).iconv("UTF-8", "ISO-8859-1", "faan"));
}
}
这是表
CREATE TABLE FWSGUP
(
KGROUP varchar(16) NOT NULL,
KUSER varchar(16) NOT NULL,
KDATES int NOT NULL,
FDATEE int,
PSPY varchar(24),
CONSTRAINT Q_CCVDPRD_FWSGUP_KGROUP_00001 PRIMARY KEY (KGROUP,KUSER,KDATES)
)