PHP и SQLite, INSERT INTO с SELECT не работает - PullRequest
0 голосов
/ 28 июля 2011

Я планирую создать свой сайт;но для этого мне нужно написать 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 - это внешние ключи, которые ссылаются на те же поля двух предыдущих таблиц)

Я хочу, чтобы этот фрагментпроверит, установлен ли флажок с тем же именем поля «имя-разрешения»;если это так, скрипт должен вставить в 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 голосов
/ 28 июля 2011

Я не слишком много работал с SQLLite, но я считаю, что проблема в поле permission-name (в нем есть знак тире (минус), и я почти уверен, что вы должны его избежать (вmysql я бы использовал обратные метки)

...