我在使用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的一大好处是可以创建预准备语句.这是我的一个PHP项目的一些代码:
$qry = $db->prepare( 'INSERT INTO twocents (path, name, message) VALUES (?, ?, ?)'); $qry->execute(array($path, $name, $message));
正如您所看到的,我使用?
了我想要插入值的位置,然后使用应该替换问号的值数组执行查询.
如果这样做,您的查询将更加安全,并且更有可能工作(因为如果您像查询一样直接在查询中插入变量,则缺少值会阻止查询工作.)