我實際上對PHP和SQLite3以及我的一些字符串在那裏的行爲方式感到非常生氣。
我試圖節省開放時間,但在字符串而不是數字,以防止與前導零的問題(並仍然有它現在哈哈... -.-)。
小時和分鐘有它們自己的列,但是當我插入'0x'時,零消失了,無論x是什麼,都留在數據庫中。 :/
我確定我只是在某處丟失了一些該死的部分...
我已經檢查了INSERT語句,但什麼也沒發現。
示例插入字符串:
INSERT INTO opening INSERT INTO opening (start_day, end_day, start_hour, start_minute, end_hour, end_minute) VALUES('Montag', 'Freitag', '00', '00', '01', '00')
但輸出是:代碼插入字符串時缺少前導零的
11|Montag|Freitag|0|0|1|0
部分:
class Database_Opening_Hours extends SQLite3{
function __construct() {
if(!file_exists("../../data/opening_hours/opening_hours.sqlite")){
$this->open("../../data/opening_hours/opening_hours.sqlite");
$this->exec('CREATE TABLE opening (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, start_day STRING, end_day STRING, start_hour STRING, start_minute STRING, end_hour STRING, end_minute STRING)');
}
else{
$this->open("../../data/opening_hours/opening_hours.sqlite");
}
}
}
$db = new Database_Opening_Hours();
$insert = "INSERT INTO opening (start_day, end_day, start_hour, start_minute, end_hour, end_minute) VALUES('".htmlspecialchars($_GET["start_day"])."','".htmlspecialchars($_GET["end_day"])."','".$start_hour."','".$start_minute."','".$end_hour."','".$end_minute."')";
if($db->exec($insert)){
$db->close();
unset($db);
echo "Insert erfolgreich";
}else{
$db->close();
unset($db);
echo "Nicht wirklich...";
}
看到http://stackoverflow.com/questions/6873354/storing-leading-zeros-of-integers-in-mysql-database-as-integer和http:// DBA。 stackexchange.com/a/15054/ –
你正在插入整數,所以01(成爲)> 1 ..不要生氣的PHP,它是你自己的代碼.. – Svetoslav
還使用準備的語句和查詢參數,而不是查詢的字符串操作。 'htmlspecialchars'甚至不能正確清理SQL。 –