Проблема при выходе в интернет (php коды) - PullRequest
0 голосов
/ 09 января 2011

У меня большие проблемы с моими php-скриптами с тех пор, как я вышел в онлайн. Некоторые запросы выполняются, другие нет ... Но когда я тестировал его с Wamp, все было хорошо.

Позвольте мне показать вам пример:

$answer = $db -> query("SELECT ID FROM users WHERE ID='{$_SESSION['id']}';");

$data = $answer->fetch();

if ($data['ID']=="") 

{

$req= $db->prepare('INSERT INTO users(ID, etat) VALUES(:ID, :state)');

$req->execute(array(
                    'ID'=>session_id(),
                    'state' => 'NORMAL',
                    ));
}

else

{

$db->exec("UPDATE users SET state='NORMAL' WHERE ID='{$_SESSION['id']}';");

}

Здесь условие игнорируется и выполняется только вставка в. Когда я перезагружаю свою страницу, вставка в выполняется снова, а не в другом.

Есть идеи?

Я подумал, что, возможно, это было бы проблемой конфигурации php.ini. Но единственный php.ini, который мне нужно заменить, это Wamp, и я не знаю, как его адаптировать ...

Ответы [ 2 ]

0 голосов
/ 09 января 2011

Хорошо, я нашел проблему на этом.На самом деле, когда я дублировал свою базу данных SQL, я забыл настроить первичный ключ, как на Wamp ... Я не знаю точно, почему, но сейчас он работает нормально ...

Я собираюсьрасследуйте другие проблемы, прежде чем вернуться к вам!

Большое спасибо всем вам за ваше время!

0 голосов
/ 09 января 2011

$_SESSION['id'] - переменная сеанса с именем 'id'.session_id() возвращает идентификатор сессии.И они не одинаковы.SELECT ID FROM users WHERE ID='{$_SESSION['id']}'; не возвращает то же значение, что и SELECT ID FROM users WHERE ID='{session_id()}'; Вам нужно либо вставить $_SESSION['id'], либо выбрать запись с id == session_id().

...