PHP和SQLite,使用SELECT INSERT INTO不起作用

时间:2011-07-28 16:46:36

标签: php sqlite select insert pdo

我打算创建我的网站;但要做到这一点,我需要写一个CMS ...... 我已经完成了大部分工作,但现在我在执行此代码时遇到了麻烦。它不会返回任何错误,但它只是......它不应该做它应该做的事情。 我的数据库中有三个表:

users(
id_user primary key,
username unique varchar,
pwd unique varchar,
and more...
)

permissions(
id_permission INTEGER PRIMARY KEY,
permission-name varchar,
and more...
)

permissions_users( id_permission, id_user 它们是引用前两个表的相同字段的外键 )

我希望此代码段会检查是否选中了与“permission-name”字段名称相同的复选框;如果是这样,脚本应该在第3个表中插入从表权限和用户检索到的id_user和id_permission。 但即使检查了一些复选框,它也不会附加!

啊,我使用的是php 5.3.6,PDO和SQLite 3.7.4。 php代码如下......

<?php

$res_perm = $db->query(
"SELECT permission-name FROM permissions"
);
while($result_perm=$res_perm->fetch()) {
if(isset($_POST[$result_perm["permission-name"]])) $db->exec(
"INSERT INTO permissions_users SELECT permissions.id_permission, users.id_user FROM permissions, users WHERE permissions.permission-name = '".$result_perm["permission-name"]."' OR users.nickname = '$ob_nickname'"
) OR die(print_r($db->errorInfo()));
}

?>

1 个答案:

答案 0 :(得分:0)

我对SQLLite没有太多工作,但我认为问题出在permission-name字段(它有一个破折号(减号),我很确定你必须逃避它(在mysql中我会使用反引号)