ENCAPSED_AND_WHITESPACE的解决方法

时间:2015-04-25 12:43:09

标签: php mysql

我是php编程的新手。我已经尝试使用谷歌搜索和搜索这个网站来解决这个问题,但我不知道甚至可以输入谷歌来找到我的答案。

我收到错误:

unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

我不确定我能做些什么来避免这种情况。我知道它是由['用户ID']引起的,但我需要将其作为编码的一部分。

这是我的代码:

<?php
include ('auth/userInfo.php');

$servername = "example";
$username = "example_1";
$password = "example";
$dbname = "example_enter";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$userprofile['userid'] = mysqli_real_escape_string($userprofile['userid']); 

$sql="INSERT INTO today (accessed)
VALUES ('$userprofile['userid']')";

if ($conn->query($sql) === TRUE) {
echo "Success";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

?>

如果我的编码非常糟糕,以至于没有人知道它正在尝试做什么。我试图在用户登录时写入MySQL数据库。

1 个答案:

答案 0 :(得分:-2)

问题是由于你是(a)使用引号引用文字字符串中的数组索引(b)在同一个字符串中插入换行符引起的:

$sql="INSERT INTO today (accessed)
VALUES ('$userprofile['userid']')";

你可能想写的是:

$sql="INSERT INTO today (accessed) VALUES ('" . $userprofile['userid'] . "')";

然而,即使这会因SQL注入攻击而出现问题 - 我建议您阅读参数化查询(mysqli_prepare)。