Php Sqlite3:insert语句在命令行中有效但在浏览器中无效

时间:2012-05-09 16:53:52

标签: php sqlite apache2

你好,这是我的代码:

<?

$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)中执行脚本时,它工作正常,但是当我使用Web浏览器运行它时,只执行第一个语句!怎么了?

谢谢

1 个答案:

答案 0 :(得分:1)

你应该

  • 检查您的PHP错误日志文件
  • 在您的第一个语句(manual
  • 之后立即调用sqlite_last_error()函数

我猜这是一个权限问题,即您的网络服务器无权在您的sqlite数据库文件所在的目录中写入。

它适用于命令行,因为它使用您自己的用户权限(而在浏览器中它使用Apache的用户,通常权限较少)。