php
  • sqlite
  • pdo
  • 2016-11-22 3 views 0 likes 
    0

    sqliteを使用していて、PHPスクリプトを使用して接続しようとしています。 選択クエリが機能していますが、更新クエリは、コードスニペットの下sqlite3の更新クエリがPHP PDOを使用していません

    $dir = 'sqlite:/var/www/html/BMKAOAData.db'; 
    $dbh = new PDO($dir) or die("cannot open the database"); 
    
    $query = 'update KAOAData set comments = :Comments where aptNo = :aptNo'; 
    $stmt= $dbh->prepare($query); 
    if(!$stmt){ 
        echo "\nPDO::errorInfo():\n"; 
        print_r($dbh->errorInfo()); 
    } 
    
    $stmt->bindParam(':Comments',$myComments,PDO::PARAM_STR); 
    $stmt->bindParam(':aptNo',$myaptNo,PDO::PARAM_STR); 
    $stmt->execute(); 
    $count = $stmt->rowCount(); 
    print "Updated $count rows\n"; 
    

    を見つけてください 動作していない私は、その解決のために多くのことを検索し、さまざまな方法を試してみましたが、それを解決できませんでした。スクリプトの同じディレクトリにデータベースがあることに注意してください。私はそのデータベースとすべての親ディレクトリに権限を与えています。 私はsqliteのプロンプトで同じクエリを実行していますが正常に動作しています。 こちらをご覧ください。

    +2

    チェック、戻って来て、彼らが何であるかを教えて、あなたの問題を解決することができます。あなたはここで魔法の答えを得ることはありません、btw。 –

    答えて

    0

    おそらく、データベースの自動コミットがfalseに設定されていますか?その場合には

    $dbh->commit(); 
    

    は、PHPのエラー報告とPDOの例外を経由してエラーの

    +0

    こんにちはフラビオ、本当に。 Infactコミットは、beginTransaction()と組み合わせて使用​​するときに必要になります。 – Gopal

    +0

    はい、それは私の質問でした:データベース自動コミットがfalseに設定されているかどうかを確認することです。 – flavio

    +0

    これは問題でない場合は、ログを確認して最終的に貼り付けることができます。 更新後の$ count変数の値は何ですか? – flavio

    関連する問題