PHP はコンピュータでは正常に動作しますが、Linux ターミナルでは正常に動作しません。
私の php ファイルの内容:
で致命的なエラーが発生します。非オブジェクト オンライン 16
$DB->connection->query("create table test(id integer Primary key,name varchar(50),grade varchar(50),score varchar(50) )");Always この行にエラーがある場合は、ここに投稿します
私のコンピューターで実行すると、まったく正常で、データを挿入できます。しかし、 Linux ターミナル、エラーが表示され続けておかしくなってしまいました。ターミナルの設定に問題がありますか?
header("content-Type: text /html; charset=Utf-8");
//uiceshi.html ページを取得して送信します Data
$fname = $_POST['fname']; //Name
$ fgrade = $_POST['fgrade']; //成績
$fscore = $_POST['fscore']; //スコア
//$sql = 'テスト値に挿入;';
//データベースインスタンスを作成します
$DB = new SQLite('blog .db') //このデータベースファイルの名前は任意です
// test
$DB->connection->query("create table test(id integer Primary key ,name varchar(50),grade varchar(50),score varchar(50))" という名前のテーブルを作成します。 ); この行にエラーがあることを示すプロンプト
//insert ステートメントを実行します
//$result = $DB->query("insert into test(name,grade,score) ('".$fname."','".$fgrade."','".$fscore."')");
$result = $DB->connection->query("insert into test(name,grade,score) value('".$fname."','".$fgrade."','".$fscore." ')");
//返された結果は主にデバッグに使用されます
print_r($result);
//SQLite class
class SQLite
{
function __construct($file)
{
try
{
$this->connection=new PDO('sqlite:'.$file)
}
catch(PDOException $e)
{
try
{
$this->connection=new PDO('sqlite2:'.$file);
}
catch (PDOException $e)
{
exit( 'エラー!');
} }
}
}
関数 __destruct()
{
$ this->connection=null; 🎜>
function query($sql) //データの更新と削除に使用できる SQL を直接実行します
{
return $this->connection ->query($sql)
}
function getlist($sql) //レコードリストを取得します
{
$recordlist=array()
foreach($ this->query($sql); as $rstmp)
{
$recordlist[]=$rstmp;
}
return $recordlist; }
関数 Execute($sql)
{
return $this->query($sql)->fetch();
}
function RecordArray($sql)
{
return $this-> query($sql)->fetchAll();
}
function RecordCount($sql)
{
return count($this- >RecordArray($sql));
}
function RecordLastID()
{
return $this->connection->lastInsertId();
} }
}
?>
-----解決策---------
LINUX 上の SQLITE がインストールされていませんか?
------解決策---------
SQLITE データファイルが保存されているディレクトリは書き込み可能ですか? 権限についてはどうですか?
ディスカッション
しかし、Linux の地下にデータを含む data.db を置くと、ターミナルはそれを読み取ることはできますが、データを挿入することはできません。 🎜>