1

再びお手数をおかけして申し訳ありませんが、コーディングで少し問題が発生しているようです。何らかの理由で、次のエラーが表示されます。

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 ' '', 'No Subject', 0, 'Jul 8, 2013 09:33 PM', 0)' at line 1

次のコマンドを実行するたびに:

        $date_posted=date("M j, Y h:i A", TIME());
$sent_to=$_POST["member_id"];
    $sent_by=$_SESSION["member_id"];
    $subject=addslashes($_POST["subject"]);
    if($subject==Null)
    {
        $subject="No Subject";
    }
    $subject=verify_data($subject);

    $message=addslashes($_POST["message"]);
    $message=verify_data($message);


                    $sql="insert into main";
            $sql.="(member_id";
            $sql.=", mail_to";
            $sql.=", mess_text";
            $sql.=", subject";
            $sql.=", deleted";
            $sql.=", date_posted";
            $sql.=", mess_read)";

            $sql.=" values($sent_by";
            $sql.=", $sent_to";
            $sql.=", '$message'";
            $sql.=", '$subject'";
            $sql.=", 0";
            $sql.=", '$date_posted'";
            $sql.=", 0)";
            $result=mysql_query($sql);
            print mysql_error();
if($result)
            {
                            print "<font color='red'>Message sent successfully.</font>";
            }
            else
            {
                            //print "<font color='red'>A system error has happened, be patient.</font>";
            }

私が正しければ、問題はコーディング値または POST 関数自体にあるはずです。問題は、_POST から HTTP_POST_VARS に変更したことであり、あまり役に立ちませんでした。

メールの MYSQL 値は次のとおりです。

member_id type int(11)
mail_to type int(11)
mess_text type blob
deleted type int(11)
subject type blob
date_posted type varchar(255)
mess_read type int(11)

次の場合の結果: echo $sql:

insert into mail(member_id, mail_to, mess_text, subject, deleted, date_posted, mess_read) values(2, , '', 'No Subject', 0, 'Jul 8, 2013 09:43 PM', 0)

この懸念を解決するお手伝いができれば、大変助かります。このコミュニティは、私のような初心者だけでなく、時にはちょっとした努力を必要とする専門家にとっても大きな支えとなっています.

4

5 に答える 5

1

フォーム送信時にフォーム要素nameにアクセスするには、フォーム要素に が必要です。だから使用するために -

$sent_to=$_POST["member_id"];

次のような要素が必要です-

<input name="member_id" />

例としてJQueryを使用してIDのみを含める場合は非常に一般的です-

<input type="hidden" id="project-id" />  // from the autocomplete source code example

を使用しているため、これはjavascript/JQueryで機能しますidが、phpでは名前を追加する必要があります-

<input type="hidden" id="member_id" name="member_id" />
于 2013-07-09T05:06:03.790 に答える
0
   <?php
    /*$db_host='localhost';
    $db_user='root';
    $db_pass='';
    $db_name='example';*/

    $dbc = mysql_connect("localhost","root","admin123") or die('Connection to database failed');
    mysql_select_db("example",$dbc);
    //$fname =$_POST['first_name'];
    //$lname =$_POST['last_name'];

    $sql="INSERT INTO table(first_name,last_name) VALUES('Prashant','Bhatta')";

    mysql_query($sql,$dbc) or die (mysql_error());

?>
于 2013-08-27T10:14:21.020 に答える
0

$sent_toor$sent_byが空になると失敗します。投稿した SQL 文字列に基づいて、$sent_to が空のようです。この値が存在することを確認するか、値を一重引用符で囲んで、空の値をデータベースに渡すことができます。

于 2013-07-09T04:46:09.430 に答える
0

$sent_to= (isset( $_POST["member_id"]) && $_POST["member_id"] != '') ? $_POST["member_id"]: '';

また

$sent_to= (isset( $_POST["member_id"]) && $_POST["member_id"] != '') ? $_POST["member_id"] : null; // null を受け入れる場合

- 編集 - -

mail_to は int を受け入れることができます

それで、

$sent_to= (isset( $_POST["member_id"]) && $_POST["member_id"] != '') ? $_POST["member_id"]: 0; //ゼロまたは任意のデフォルト値にすることができます

于 2013-07-09T04:50:53.497 に答える