-1
<?php
            $con = mysql_connect("localhost:3306","root","");
            try
            {
                if (!$con)
                 {
                     die('Could not connect to MySql Server : ' . mysql_error());
                }

                $db_found = mysql_select_db("registerdb");  

                if ($db_found) 
                {
                    print "Database Found";
                }
                else 
                {
                    print "Database NOT Found";
                }
                mysql_query("INSERT INTO register VALUES ('$_POST[Field2]','$_POST[Field4]','$_POST[Field7]','$_POST[Field8]','$_POST[Field9]','$_POST[Field13]','$_POST[Field14]','$_POST[Field15]')");

                mysql_close($con);
            }
            catch(Exception $e)
            {
                echo 'Message: ' .$e->getMessage();
            }
?>

実行時にエラーが発生しません。同じデータベースに対して正常に動作するクエリを選択してください。register のテーブル定義は次のとおりです。

 Name          Type           Null      Key
 id       bigint(10)      NO        PRI     auto_increment
sname     varchar(20)     NO             
dob       date  YES       NULL   
email     varchar(30)     NO             
gender    varchar(7)      NO             
mobile    int(10)     YES            
country       varchar(15)     NO             
state     varchar(15)     YES            
city      varchar(15)     YES 

PHPでsysntaxエラーが発生していません。

間違えてすみません、編集しました。

4

6 に答える 6

2
,'$_POST[Field15])'");
                  ^_______________ Missed quote.

POST データ連結の代わりにパラメーターを使用して、潜在的な SQL インジェクションを回避します。

于 2013-01-29T10:04:51.327 に答える
2

実は構文が間違っていた、

Insert into register ('field1','field2',...,'field n') values ('value1','value2',..,'value n');
于 2013-01-29T10:07:34.237 に答える
2

4番目の変数を台無しにしました:

POST[Field4] [Should Be] $_POST[Field4]

また、Field15 の後の締めくくりの引用を逃しました

エラーを回避するために、スキーマをクエリに含めることもお勧めします。

INSERT INTO example_table (field1, field2, field3) VALUES (value1, value2, value3);

編集

完全にエスケープされたクエリを試してみませんか...

mysql_query('INSERT INTO register VALUES ("'.$_POST['Field2'].'","'.$_POST['Field4'].'","'.$_POST['Field7'].'","'.$_POST['Field8'].'","'.$_POST['Field9'].'","'.$_POST['Field13'].'","'.$_POST['Field14'].'","'.$_POST['Field15'].'")');
于 2013-01-29T10:04:43.847 に答える
0

ここで問題は見られませんが、「POST[Field4]」はタイプミスだと思いますが、他の人が言っているように、mysql_ 関数を実際に使用しないでください。

于 2013-01-29T10:06:58.050 に答える
0

mysql_query は例外をスローしません。詳細については、戻り値を確認し、mysql_error を呼び出す必要があります。

コメントで述べたように、mysql は非推奨です。

于 2013-01-29T10:07:23.423 に答える
0

次のようになります。

$query = "INSERT INTO table(column 1, column 2, column 3) VALUES('".$value1."','".$value2."', '".$value3."')";

これを試して。

于 2013-01-29T12:52:20.477 に答える