php+MySQLでレコード追加が反映されません。
phpとMySQLで、フォームに入力した情報を指定したテーブルに
新規レコードとして登録するページを作っています。
phpのバージョンは5.3、MySQLのバージョンは5.1.59だと思います。
レンタルしているサーバーはlolipopのものです。
こちらのふたつのウェブページを参考にコーディングしたのですが、
登録をしても無視されてしまい、MySQLにレコードが追加できません。
http://php5.seesaa.net/
http://memopad.bitter.jp/w3c/php/php_mysql_insert.html
データベースへの接続と、フォームのあるページからINSERT文を書いたページへのデータの受け渡しは成功しているようです。
上記の2つのサイトで紹介されていたどの方法を試しても、同じ結果になります。
INSERT文の書き方がおかしいのでしょうか?
以下のようにコーディングしました。
---------------------------
<?php
$url = "mysql***.phy.lolipop.jp";
$user = "USER_NAME";
$pass = "******************";
$db = "DATABASE_NAME";
// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");
// クエリを送信する
$sql = "SELECT * FROM table_name";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
//結果セットの行数を取得する
$rows = mysql_num_rows($result);
//結果保持用メモリを開放する
mysql_free_result($result);
// MySQLへの接続を閉じる
mysql_close($link) or die("MySQL切断に失敗しました。");
//データを取得する
$AAA = $_POST['aaa'];
$BBB = $_POST['bbb'];
$CCC = $_POST['ccc'];
$DDD = $_POST['ddd'];
$EEE = $_POST['eee'];
$FFF = $_POST['fff'];
$GGG = $_POST['ggg'];
$HHH = $_POST['hhh'];
$III = $_POST['iii'];
$JJJ = $_POST['jjj'];
$KKK = $_POST['kkk'];
$LLL = $_POST['lll'];
$MMM = $_POST['mmm'];
$NNN = $_POST['nnn'];
$OOO = $_POST['ooo'];
$PPP = $_POST['ppp'];
$QQQ = $_POST['qqq'];
// クエリを送信する
$sql = "INSERT INTO tablename (AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH, III, JJJ, KKK, LLL, MMM, NNN, OOO, PPP, QQQ) VALUES (`'$_POST[aaa]','$_POST[bbb]','$_POST[ccc]','$_POST[ddd]','$_POST[eee]','$_POST[fff]','$_POST[ggg]','$_POST[hhh]','$_POST[iii]','$_POST[jjj]','$_POST[kkk]','$_POST[lll]','$_POST[mmm]','$_POST[nnn]','$_POST[ooo]','$_POST[ppp]','$_POST[qqq]')";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登録が完了しました</title>
</head>
<body>
<h3>登録が完了しました</h3><br>
<br />
接続ID:<?= $link ?><br />
選択の成否:<?= $sdb ?><br />
結果ID:<?= $result ?><br />
行数:<?= $rows ?><br />
<br />
項目A:<?= $AAA ?><br />
項目B:<?= $BBB ?><br />
項目C:<?= $CCC ?><br />
項目D:<?= $DDD ?><br />
項目E:<?= $EEE ?><br />
項目F:<?= $FFF ?><br />
項目G:<?= $GGG ?><br />
項目H:<?= $HHH ?><br />
項目I:<?= $III ?><br />
項目J:<?= $JJJ ?><br />
項目K:<?= $KKK ?><br />
項目L:<?= $LLL ?><br />
項目M:<?= $MMM ?><br />
項目N:<?= $NNN ?><br />
項目O:<?= $OOO ?><br />
項目P:<?= $PPP ?><br />
項目Q:<?= $QQQ ?><br />
</body>
</html>
---------------------------------------------
この他に、フォームの画面や入力内容確認の画面があるのですが、
その間同士でのデータの受け渡しは成功しているようです。
ただ、このページでのレコードの登録だけができません。
初心者の質問で大変申し訳ないのですが、
どなたかわかる方、お答えいただけると嬉しいです。
よろしくお願い致します。
お礼
ありがとうございました。 $res = mysql_query($sql,$conn); としてみましたが変わりませんでした。 書いていただいた、唐突に$resという変数が出現しているというところを考えて、 $res = mysql_query($sql,$conn);の下の mysql_free_result($res); を削除してみましたらエラー文が出なくなりました。 助かりました。有難うございました。