2012-05-09 2 views
0

привет это мой код:Php Sqlite3: вставить Постулаты работы в командной строке, но не в браузере

<? 

$DBNAME='astbase.db'; 
$MYTABLE ='extens'; 

$wsdl = "wwwwww"; 
$reply = "wwww"; 
$idsms = "4"; 
$exten = 100; 

$base= new PDO('sqlite:'.$DBNAME);//, 0666, $err); 
$query = "CREATE TABLE IF NOT EXISTS $MYTABLE(id INTEGER PRIMARY KEY,exten VARCHAR(255), wsdl TEXT, reply text, idsms INTEGER)";  
$results = $base->exec($query); 
print_r($results); 

$query = "INSERT INTO $MYTABLE(id,exten,wsdl,reply,idsms) VALUES(NULL,'$exten','$wsdl','$reply',$idsms)"; 
$results = $base->exec($query); 
print_r($results); 

?> 

, когда я выполнить скрипт в командной строке (php5 script.php), он отлично работает, но когда я запускаю его с помощью веб-браузера, выполняется только первый оператор !!! что не так ??

благодарит

ответ

1

Вы должны

  • проверьте файл журнала ошибок PHP
  • вызова функции sqlite_last_error() только после первого заявления (manual)

Я предполагаю, что это проблема с разрешениями, то есть ваш веб-сервер не имеет права писать в каталоге, где находится ваш файл базы данных sqlite.

Он работает с командной строкой, поскольку использует собственные права пользователя (тогда как в браузере используется пользователь Apache, который часто имеет меньше прав).

+0

Да, это проблема с разрешениями, я установил базу данных файлов на 777, но каталог не разрешил публичный доступ, я добавил пользовательские www-данные (пользователь Apache) в группу владельцев и работает, спасибо :) –

Смежные вопросы