よくわかるPHPの教科書から、
「Twitter風ひとこと掲示板」の作成でのエラー。
[OK]
・データーベース作成
・会員登録画面から登録可能
・データベースを見ると登録されていること確認
http://higelatta.bob.buttobi.net/nise_twitter/index.php
http://higelatta.bob.buttobi.net/nise_twitter/login.php
[NG]
・ログイン画面でログイン後、TOPのindex.php画面に飛んだとき、エラーが発生
■エラー内容
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5, 5' at line 1
以上です。
SQL文にエラーがありますと、バージョンがどーのこーのといっているようですが、
具体的な解決方法がわかりません。
以下に、TOPのindex.phpのソースを少々添付いたします。
<?php
session_start();
require('dbconnect.php');
if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) {
// ログインしている
$_SESSION['time'] = time();
$sql = sprintf('SELECT * FROM members WHERE id=%d',
mysql_real_escape_string($_SESSION['id'])
);
$record = mysql_query($sql) or die(mysql_query());
$member = mysql_fetch_assoc($record);
} else {
// ログインしていない
header('Location: login.php');
}
// 投稿を記録する
if (!empty($_POST)) {
if ($_POST['message'] != '') {
$sql = sprintf('INSERT INTO posts SET member_id=%d, message="%s", reply_post_id=%d, created=NOW()',
mysql_real_escape_string($member['id']),
mysql_real_escape_string($_POST['message']),
mysql_real_escape_string($_POST['reply_post_id'])
);
mysql_query($sql) or die(mysql_error());
header('Location: index.php');
}
}
// 投稿を取得する
$page = $_REQUEST['page'];
if ($page == '') {
$page = 1;
}
$page = max($page, 1);
以上です。
長々と申し訳ありません。
おそらく、
if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) {
付近に問題があるのかなと思うのですが、
詳しい方ご教授願います。