我使用mysql创建了一个使用mysql的用户表:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(250) DEFAULT NULL,
`department` varchar(250) NOT NULL,
`tel` varchar(50) NOT NULL,
`email` varchar(255) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`role` text NOT NULL,
`other` text NOT NULL,
`status` int(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `department` (`department`)
);
然后我在Slim框架中使用这个PHP代码来创建一些RESTful api:
// GET all users route
$app->get('/users', function () {
$sql = 'SELECT * FROM users ORDER BY name';
try {
$db = getConnection();
$stmt = $db->query($sql);
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo '{"users":' . json_encode($users) . '}';
} catch(PDOEXCEPTION $e) {
echo '{"error": { text: ' . $e->getMessage() . '}}';
}
});
后退 中的
define([
'underscore',
'backbone'
],
function(_, Backbone) {
return Backbone.Model.extend({
//urlRoot: 'scripts/data/users',
defaults: {
id: 0,
name: 'anon',
department: 'Agency Anon',
tel: '0207 123 45 67',
email: 'anon@sample.com',
date: '1 January 2014',
role: 'Snr Developer',
other: 'Lorem ipsum',
status: 0
}
});
});
所有这些都按预期工作,即所有字段都返回例外结果,但在firebug控制台中返回空值的role
和other
字段除外。
我得到的结果(注意role
和other
,它们应该是文字,而不是null
:
{
"users":[{
"id":"1",
"name":"Sabrina Materoli",
"department":"Marketing",
"tel":"0207 000 1110",
"email":"sabrina@company.com",
"date":"2014-06-12 11:43:43",
"role":null,
"other":null,
"status":"0"
}]
}
有人能说出我做错了吗?
答案 0 :(得分:1)
经过长时间的讨论,我找到了你的bug的解决方案。
只有与文本字段混合的special characters
才会出现此问题。例如@
,$
...
尝试使用utf8_general_ci
进行数据库归类。