2012-05-09 3 views
0

こんにちは、これは私のコードです:私は、コマンドライン(PHP5のscript.php)でスクリプトを実行すると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); 

?> 

、それが正常に動作しますが、 Webブラウザで実行すると、最初の文だけが実行されます。どうしましたか ??

おかげ

答えて

1

あなたは

  • は自分の最初の文の後に、あなたのPHPのエラーログファイル
  • コールsqlite_last_error()機能をチェックする必要があります(manual

私はそれは推測していますアクセス許可の問題です。つまり、Webサーバーには、sqliteデータベースファイルが置かれているディレクトリに書き込む権限がありません。

これは、独自のユーザーの権限を使用するため、コマンドラインで動作します(ただし、ブラウザでは、多くの場合、権限の少ないApacheユーザーが使用されます)。

+0

はい、ありがとうございます、権限の問題です、私は777にファイルデータベースを設定しましたが、ディレクトリはパブリックアクセスを許可しませんでした、私はユーザーのwwwデータ(Apacheユーザー)を所有者グループに追加しました。 –

関連する問題