-1

PHP を使用して mysql にデータを挿入しようとしましたが、このエラーが発生しています 解析エラー: 構文エラー、予期しない T_ENCAPSED_AND_WHITESPACE...

これは私の挿入ファイルです

<?php
    include_once 'include.php';
    include_once 'header.php';

    //$dbhandle = mysql_connect($hostname, $DBUser, $DBPasswd) 
    // or die("Unable to connect to MySQL");
    //echo "Connected to MySQL<br>";

    $DBsubmit="INSERT INTO User (fname, lname, email, password, institution, expertise)   
               VALUES('$_POST['fname']', '$_POST['lname']', '$_POST['email']', '$_POST['password']', '$_POST['institution']', '$_POST['expertise']')";
    $result=mysql_query($DBsubmit)

    //echo "1 record added";

    // close connection 
    mysql_close();
?>
4

2 に答える 2

1

文字列内の配列アクセス構文は、外部とは異なります。次のいずれかに変更します。

{$_POST['fname']}

また

$_POST[fname]

また、行にセミコロンがありませんquery

コードも可能な限り脆弱です。PDO または mysqli で適切にパラメータ化されたクエリを使用する必要があります。

于 2013-03-29T00:18:04.693 に答える
0

あなたのクエリは、SQL インジェクションに対して非常に脆弱です。代わりに使用することをお勧めしmysql_real_escape_stringます。

$DBsubmit=sprintf("INSERT INTO User (fname, lname, email, `password`, institution, expertise)
VALUES('%s','%s','%s','%s','%s','%s')",
mysql_real_escape_string($_POST['fname']),
mysql_real_escape_string($_POST['lname']),
mysql_real_escape_string($_POST['email']),
mysql_real_escape_string($_POST['password']),
mysql_real_escape_string($_POST['institution']),
mysql_real_escape_string($_POST['expertise']));
于 2013-03-29T00:23:56.897 に答える