| << 登録完了とメール送信 | 質問一覧 | SQL文の内容 >> |
- キーワードが設定されていません
- 0P
MySQLにデータが追加できません。
- 0P
PHPの勉強をしていますが、データベースにデータが追加されずデータ追加エラーが出ます。
どうすればよいのか教えていただけるでしょうか?
環境は
データベースはMySQLを使用しています。
PHPMyadminでテーブルを作りました。
PHPは5.3.1
XAMPP1.7.3
です。
コードは以下の通りです。
- <html>
- <head>
- <title>ゲストブック</title>
- </head>
- <body>
- <form method="POST" action=" echo $_SERVER["PHP_SELF"]">
- <table border="1">
- <tr>
- <td>お名前</td>
- <td><input type="text" name="g_name" size="30"></td>
- </tr>
- <tr>
- <td>メールアドレス</td>
- <td><input type="text" name="g_mail" size="30"></td>
- </tr>
- <tr>
- <td>メッセージ</td>
- <td>
- <textarea rows="5" cols="30" name="g_mes"></textarea>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="submit" value="書き込む">
- </td>
- </tr>
- </table>
- </form>
- // 接続設定(サーバ/データベース/ユーザ/パスワード)
- $sv = "localhost";
- $dbname = "guestbook";
- $user = "******";
- $pass = "******";
- // データベースに接続する
- $conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
- mysql_select_db($dbname) or die("接続エラー");
- // POSTメソッドで送信された場合は書き込み処理を実行する
- if ($_SERVER["REQUEST_METHOD"] == "POST") {
- // フォームからデータを受け取る
- $g_name = cnv_dbstr($_POST["g_name"]);
- $g_mail = cnv_dbstr($_POST["g_mail"]);
- $g_mes = cnv_dbstr($_POST["g_mes"]);
- // 名前とメッセージが入力されていればデータの追加を実行する
- if (!empty($g_name) and !empty($g_mes)) {
- // データを追加する
- $sql = "INSERT INTO guestdata(g_name, g_mail, g_mes, g_date) ";
- $sql .= "VALUES(";
- $sql .= "'" . $g_name . "',";
- $sql .= "'" . $g_mail . "',";
- $sql .= "'" . $g_mes . "',";
- $sql .= "'" . date("Y/m/d H:i:s") . "'";
- $sql .= ")";
- echo $sql;
- $res = mysql_query($sql, $conn) or die("データ追加エラー");
- if ($res) {
- echo "<p>書き込みありがとうございました</p>";
- }
- }
- // 名前やメッセージが空白の場合はエラーメッセージを出力する
- else {
- echo "<p><b>お名前とメッセージを入力してください</b></p>";
- }
- }
- // SQLコマンド用の文字列に変換する関数
- function cnv_dbstr($string) {
- // タグを無効にする
- $string = htmlspecialchars($string);
- // magic_quotes_gpcがONの場合はエスケープを解除する
- if (get_magic_quotes_gpc()) {
- $string = stripslashes($string);
- }
- // SQLコマンド用の文字列にエスケープする
- $string = mysql_real_escape_string($string);
- return $string;
- }
エラー個所を探すために
echo $sql;
を追加し、
$res = mysql_query($sql, $conn) or die("データ追加エラー");
↓
$res = mysql_query($sql, $conn) or die("mysql_error()");
にしてみましたが、
INSERT INTO guestdata(g_name, g_mail, g_mes, g_date) VALUES('aaa','aaa','aaa','2010/06/18 10:13:01')mysql_error()
と表示されてしまいます。
どこが悪いのでしょうか?よろしくお願いします。
MySQLにデータが追加できません。 satoshi_iso [06月18日 10時39分] | 登録完了とメール送信 | 質問一覧 | SQL文の内容 |





