-1

我一直在尝试使用 php 将数据插入 mysql 但收到此错误 Parse error: syntax error, unexpected 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 回答