【问题标题】:PHP and SQLite, INSERT INTO with SELECT doesn't workPHP 和 SQLite,使用 SELECT 的 INSERT INTO 不起作用
【发布时间】:2011-10-15 07:25:40
【问题描述】:

我正计划创建我的网站;但要做到这一点,我需要编写一个 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 它们是引用前两个表的相同字段的外键 )

我希望这个 sn-p 将检查是否选中了与字段“permission-name”同名的复选框;如果是这样,脚本应该将从表权限和用户中检索到的 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()));
}

?>

【问题讨论】:

  • 在执行查询之前,您是否查看过查询的外观并尝试手动执行它们?
  • 大家好,首先,感谢您的回答...

标签: php sqlite select insert pdo


【解决方案1】:

我没有过多地使用 SQLLite,但我相信问题出在 permission-name 字段中(其中有一个破折号(减号),我很确定你必须逃避它(在mysql 我会使用反引号)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2016-05-20
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多