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

    我正在使用sqlite并试图通过我的PHP脚本连接到它。 select查询工作,但更新查询不工作 请找到下面的代码片段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

    检查错误,然后回来告诉我们它们是什么。顺便说一句,你不会在这里得到一个神奇的答案。 –

    回答

    0

    也许是数据库autocommit设置为false?在这种情况下

    $dbh->commit(); 
    

    可以通过PHP的错误报告和P​​DO异常解决您的问题

    +0

    嗨弗拉维奥,不是真的。 Infact提交将在需要时与beginTransaction()一起使用。 – Gopal

    +0

    是的,那是我的问题:检查数据库自动提交是否设置为false。 – flavio

    +0

    无论如何,如果这不是问题,您是否可以检查并最终粘贴日志。 更新后的$ count变量值是多少? – flavio

    相关问题