【发布时间】:2010-11-13 15:37:10
【问题描述】:
我在使用 pdo 插入 sqlite3 数据库时遇到了一些麻烦。您必须原谅我对 PDO 的无知,它似乎来自 Python 的数据库接口。
所以这是我的问题。我有一个简单的插入:
$dbh = new PDO('sqlite:vets.db');
$count = $dbh->exec("INSERT INTO vets(name,email,clinic,streetname,citystatezip,link,phone,fax,animal,region,visible) VALUES ($name,$email,$clinic,$streetname,$citystatezip,$link,$phone,$fax,$animal,$region,$visible)");
$dbh = null;
我只是想在我的数据库上执行那个 SQL 命令并完成它。尽管执行此脚本不会导致错误,但它永远不会更新数据库。我已经尝试了数据库本身的各种权限,甚至将其设置为 777,但这并没有什么不同。
有人可以帮我吗?
【问题讨论】:
-
只是作为旁注(可能与您的问题无关),您是否考虑过转义您在查询中注入的数据? (见 PDO::quote);或使用准备好的语句(参见 PDO::prepare + PDO::execute)。您是否尝试检查没有 SQL 错误? (见php.net/manual/fr/pdo.errorinfo.php)
-
您是否使用 PDO sqlite 适配器进行过其他成功的查询?
-
此外,您的 SQL 语句中的每个值似乎都没有引号。 (当然,除非引号包含在每个变量中)
-
根据docs.python.org/library/sqlite3.html,它与python没有什么不同。