这是我的代码:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = "INSERT INTO together (`First Name`,`Last Name`, `Email id`,'Password')
VALUES ( '$_POST[First name]', '$_POST[Last name]', '$_POST[Email_id]','$_POST[Password]')";
mysql_select_db('test');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "You have successfully singed up for together \n";
mysql_close($conn);
?> 但是当我运行它时,我得到了以下错误:
( Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting ']' in C:\wamp\www\MyProjects\Sign_up.php on line 11) 请帮我修一下。
发布于 2013-09-22 00:53:12
在INSERT查询中将'Password'更改为Password。此外,$_POST[First name]不会工作-您需要调用:$_POST['First name'] (带引号)
此外,不建议使用mysql_*函数-它已过时(请参阅)且不安全。请改用PDO或MySQLi。
下面是一个使用PDO的示例:
$dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
$stmt = $dbh->prepare("INSERT INTO together (`First Name`,`Last Name`, `Email id`,'Password')
VALUES (:fname, :lname, :email_id, :pwd)") ;
/*** bind the paramaters ***/
$stmt->bindParam(':fname', $fname, PDO::PARAM_STR);
$stmt->bindParam(':lname', $lname, PDO::PARAM_STR);
$stmt->bindParam(':email_id', $email_id, PDO::PARAM_INT);
$stmt->bindParam(':pwd', $pwd, PDO::PARAM_STR);
/*** execute the prepared statement ***/
$stmt->execute();
/*** fetch the results ***/
$result = $stmt->fetchAll();
/*** loop of the results ***/
foreach($result as $row)
{
echo $row['`First Name`'].'<br />';
...发布于 2013-09-22 00:54:52
伙计,你需要在你的数组中这样做:
$_POST["Email_id"]此外,在查询sql中,字段不需要'`‘。如果您真的创建了名称中包含空格的字段
发布于 2013-09-22 09:10:05
你是不是忘记了[]之间的引号?网址:( '$_POST[First name]', '$_POST[Last name]', '$_POST[Email_id]','$_POST[Password]')
https://stackoverflow.com/questions/18935143
复制相似问题