dポイントプレゼントキャンペーン実施中!

フォームで入力された値をINSERT文でMYSQLへ保存しようとしているのですが、
以下のように記述して実行し、phpmyadminでテーブルを確認しても
データが入力されておらず空のテーブルとなっています

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<?php

$SCR = $_POST['junni'];

$Name = $_POST['namae'];

$Day = $_POST['hiduke'];


$conn =
mysql_connect($url,$user,$pass);

$sdb =
mysql_select_db($db,$conn);

$sql = "insert into `seiseki`(`name`,`day`,`score`)values('$Name','$Day','$SCR')";

$res = mysql_query($sql,$sdb,$conn);

mysql_free_result($res);

mysql_close($conn);

?>
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
補足として、

実行後、
Warning: mysql_query() expects at most 2 parameters, 3 given in 「phpの場所とファイル名」 on line 26

Warning: mysql_free_result() expects parameter 1 to be resource, null given in 「phpの場所とファイル名」 on line 28

という表示がされます

また、$conn =のあとに
print ($Day");
print ($Name");
などを入れると値は表示されているため、受け渡しは問題ないかと思います

また、$url,$user,$pass,$dbは、$SCR = $_POST['junni'];以前に
$url = "localhost";というような形で代入しており、入力ミスなどは何度も確認しましたがありません

知識がほとんどありませんので、説明足らずかもしれませんが、
文法、入力間違いや解決策がありましたらよろしくお願いいたします

A 回答 (3件)

 知識うんぬんはともかくとして、エラーメッセージが出ているのですからそれを読んでみてはいかがでしょうか。



> Warning: mysql_query() expects at most 2 parameters, 3 given in 「phpの場所とファイル名」 on line 26
訳: 警告: mysql_query() は多くとも2つのパラメーターを期待します。3つが渡されています。

 mysql_query()のメソッド定義を調べて、正しい呼び出し方をしてあげてください。
http://jp2.php.net/manual/ja/function.mysql-quer …

> Warning: mysql_free_result() expects parameter 1 to be resource, null given in 「phpの場所とファイル名」 on line 28
訳: 警告: mysql_free_result() は第1のパラメーターがresource型である事を期待します。nullが渡されています。

 $resがnullだからですね。これは先ほどのmysql_query()が失敗しているからと推測されますが、そもそも$resの破棄はSELECTを行った結果である場合のみなのではないでしょうか。INSERTの時に結果を破棄する事が必要なのか調べてみてください。
http://jp2.php.net/manual/ja/function.mysql-quer …
http://jp2.php.net/manual/ja/function.mysql-free …
    • good
    • 0
この回答へのお礼

ありがとうございました^^
英語がほぼわからずエラーの意味が訳せませんでした^^;

$res = mysql_query($sql,$sdb,$conn);
の部分を
$res = mysql_query($sql);
と改変し、無事入力することができました

また、mysql_free_result() は、お書きになった通りこの場合不必要なものでした
ご指摘ありがとうございます

お礼日時:2011/01/10 01:07

もしかすると英語はまったくダメな感じでしょうか?


私はPHP知りませんが、言葉を読む限り
・26行目で、最大2個の引数を期待しているが、お前は3個渡した
・28行目で、リソースになる1つのパラメータを期待しているが、お前はnullを渡した
といわれてますよ。

最低限の基本的な書き方が分かっていないことも問題だとは思いますが、
せっかくわかりやすいメッセージを出してもらっているのに
言葉を理解していないがために通じない不幸な状態に見えます。


PHP: mysql_query - Manual
http://php.net/manual/ja/function.mysql-query.php
mysql_query
http://manual.xwd.jp/function.mysql-query.html
mysql_query:SQLを実行する
http://bg.pi-ppi.com/page/n01/000144.html
mysql_query - MySQL クエリを送信する
http://phpspot.net/php/man/php/function.mysql-qu …
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございました^^
お書きになっている通り英語がほぼわからずエラーの意味が訳せませんでした^^;

$res = mysql_query($sql,$sdb,$conn);
の部分を
$res = mysql_query($sql);
と改変し、無事入力することができました

緊急で作成しているため基本を学習している時間がなく、
サンプルや本を参考にコードをつなげているだけの状態です;;
ご迷惑をおかけし、申し訳ありませんでした

お礼日時:2011/01/10 01:11

PHP やったことないんですけど



>Warning: mysql_query() expects at most 2 parameters, 3 given in 「phpの場所とファイル名」 on line 26


「mysql_query() パラメータは最大2つまでですけど、3つありますよ。」
という意味なんですが、大丈夫なんですか?

$res = mysql_query($sql,$sdb,$conn);

↑ ここが違うんじゃないかと思うのですが…。
    • good
    • 0
この回答へのお礼

ありがとうございました^^
英語がほぼわからずエラーの意味が訳せませんでした

$res = mysql_query($sql,$sdb,$conn);
の部分を
$res = mysql_query($sql);
と改変し、無事入力することができました

お礼日時:2011/01/10 01:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!