Ошибка при попытке записи в БД из PHP - PullRequest
2 голосов
/ 02 ноября 2011

Я использую скрипт PHP и клиент Android. Вот скрипт PHP

 <?php
//$user = $_GET['username'];
//$timestamp = $_GET['timestamp'];
//$latitude = $_GET['latitude'];
//$longtitude = $_GET['longtitude'];
//$filename = $_GET['filename'];

$user = "test";
$timestamp = 100;
$latitude = 10;
$longtitude = 10;
$filename = "test.jpg";

$dbname = "sqlite:/".dirname(__FILE__)."/terrapin";
$handle = new PDO($dbname);
if (!$handle) die ($error);

error_log("before exec",0);
$insert = "INSERT INTO information VALUES(NULL,'$user','$latitude','$longtitude','$timestamp','$filename')";
$handle->exec($insert);
error_log("after exec",0);
$handle = null;

$total = $user."\n".$timestamp."\n".$latitude."\n".$longtitude;
$name = "dumpp.txt";
$fh = fopen($name, 'w');
fwrite($fh,$total);
fclose($fh);
?>

Проблема в том, что когда я запускаю скрипт из командной строки, он работает нормально и вставляется в БД. Но когда я удаляю комментарии, получаю значения из запроса GET и запускаю скрипт из клиента, в базу данных ничего не вставляется. В ошибке ничего нет, однако оба оператора error_log печатаются. Есть идеи, почему это происходит?

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Я думаю, что вы, возможно, только что нажали классический sqlite "Gotcha".

Если файл, указанный вами в операторе open, не существует, sqllite спокойно создаст новую пустую базу данных. В этой новой базе данных не будет таблиц, ожидаемых вашим приложением.

Посмотрите в каталогах приложений пустую базу данных sqlite, созданную в неожиданном месте.

0 голосов
/ 02 ноября 2011

Если у вас нет ограничений в вашей таблице, что-то должно быть вставлено, независимо от того, существует оно в $_GET или нет.

Является ли файл базы данных SQLite доступным для записи (Apache / PHP), а также dirname(__FILE__) папка?

0 голосов
/ 02 ноября 2011

вы должны проверить это с помощью print_r ().

<code>echo "<pre>";print_r($_GET);echo "
";

если данные поступают, вам следует проверить свой запрос ...

вкратцеВам нужно отладить свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...