Я экспортирую таблицы из Android (SQLite) в MYSQL, используя PHP для связи с сервером (я использую XAMPP
как инструмент).MySQL и PHP parsing странная строка
У меня есть таблица в sqlite
со строковым полем (с именем «Старт»), в котором говорится о текущем времени в формате, который я специально разработал. Пример: 0:03:14 - 2013/8/12. Я передаю эту информацию серверу, используя HttpPost
в Android.
Приходит проблема. Я создаю таблицу для mysql, используя, например, тип «varchar (50)» для поля «Пуск». Когда я вставить в таблицу, я получил следующее сообщение, используя JSON:
08-12 16:51:25.383: D/MYSQL(26304): jsonResult {"phpError":"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':36:12 -- 2013\/8\/6, \r\n\t18:36:17 -- 2013\/7\/6, 30, 57)' at line 2","Success":0,"Message":"Oops! Couldnt upload data","Start":"18:36:12 -- 2013\/8\/6"}
Как вы видите, исходная строка запуска является 18:36:12, однако, в сообщении об ошибке представляется «использовать около ': 36: 12 ", поэтому кажется, что у него есть некоторая проблема« разбора »строки (?). Кто-нибудь знает, что происходит? Должен ли я использовать другой тип для этого поля?
Это мой PHP-файл:
<?php
$response = array();
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
$sql1 = "CREATE TABLE IF NOT EXISTS mobile_metadata(ID int, Acc int, Mag int, Gyr int, Temperature int, Grav int,
Light int, LinAcc int, Pressure int, Proximity int, Humidity int, RotVec int, Format varchar(50), Start varchar(50),
Finish varchar(50), First int, Last int);";
$result1 = mysql_query($sql1);
//Data succesfully created/was already created
if($result1){
$id = $_POST['id']; $acc = $_POST['Acc']; $mag = $_POST['Mag']; $gyr = $_POST['Gyr']; $temperature = $_POST['Temperature']; $grav = $_POST['Grav'];
$light = $_POST['Light']; $linAcc = $_POST['LinAcc']; $pressure = $_POST['Pressure']; $proximity = $_POST['Proximity']; $humidity = $_POST['Humidity'];
$rotVec = $_POST['RotVec']; $format = $_POST['Format']; $start = $_POST['Start']; $finish = $_POST['Finish']; $first = $_POST['First'];
$last = $_POST['Last'];
$sql2 = "INSERT into mobile_metadata(ID, Acc, Mag, Gyr, Temperature, Grav, LinAcc, Pressure, Proximity, Humidity, RotVec, Format, Start, Finish,
First, Last) VALUES ($id, $acc, $mag, $gyr, $temperature, $grav, $light, $linAcc, $pressure, $proximity, $humidity, $rotVec, $format, $start,
$finish, $first, $last);";
$result2 = mysql_query($sql2);
//Data uploaded
if($result2){
$response['Success'] = 1;
$response['Message'] = "Data uploaded succesfuly";
echo json_encode($response);
}
//Couldnt upload data
else{
$response["phpError"] = mysql_error();
$response['Success'] = 0;
$response['Message'] = "Oops! Couldnt upload data";
$response['Start'] = $_POST['Start'];
echo json_encode($response);
}
}
//Couldnt create the table
else{
$response["phpError"] = mysql_error();
$response["Success"] = 0;
$response["Message"] = "Oops! Couldnt create the table";
echo json_encode($response);
}
?>
Спасибо.
Я действительно не нужно делать какие-либо вычисления даты с информацией в базе данных MYSQL, но я буду рассматривать в любом случае, чтобы изменить его. Спасибо за совет! – Rafag