2017-09-14 2 views
0

ここに私のコードがありますが、修正する方法がわかりません。ありがとうございます!ここにエラーがあるparがあります。$ valueの行にあります。致命的なエラー:関数名は20行目の_______の文字列でなければなりません

$db_selected = mysqli_select_db($link, DB_NAME); 

    if (!$db_selected) { 
    die('Can\'t use '. DB_NAME . ': ' .mysqli_error()); 
     } 

    $value = $_POST ('Name'); 
    $value2 = $_POST ('Email'); 
    $query= "INSERT INTO person (Name, Email) VALUES ('$value',  '$value2')"; 

    if (!mysqli_query($query)) { 
    die('Error: ' . mysql_error()); 
    } 
+0

$ _POSTを関数として定義していませんか? – Progrock

+0

さらに詳細な情報(最小、完全、検証可能なコード)とエラースタックトレースを提供してください – Pratham

答えて

3

あなたはこれらの行の構文エラーを持っている:

$value = $_POST ('Name'); 
$value2 = $_POST ('Email'); 

$_POSTは配列であるので、あなたはそうのように、それをアクセスするために、角括弧を使用する必要があります。

$value = $_POST['Name']; 
$value2 = $_POST['Email']; 

通常の角かっこを使用すると、変数$_POSTの値を持つ関数を呼び出そうとしていることをPHPに伝えます。それは配列なので、エラーが発生します。

また、深刻なSQLインジェクションの脆弱性があることを追加する必要があります。詳細については、この答えを参照してください:How can I prevent SQL injection in PHP?

+0

これを 'mysqli_error'に変更する' mysql_error'についても記述してください – C2486

1

私はあなたが意味を考える:

$value = $_POST['Name']; 
$value2 = $_POST['Email']; 

お知らせ代わりにあなたが持っていた括弧の$ _POSTのための角括弧。

関連する問題