尝试写入MySQL表时发生PHP解析错误

尝试写入MySQL表时发生PHP解析错误,php,mysql,Php,Mysql,我不熟悉php和MySQL。我在这里检查了其他示例,但我不明白哪里出了问题。我试图将用户数据写入MySQL数据库中名为registered的表中。然而,我不断得到这个错误 Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) 这是我产

我不熟悉php和MySQL。我在这里检查了其他示例,但我不明白哪里出了问题。我试图将用户数据写入MySQL数据库中名为registered的表中。然而,我不断得到这个错误

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
这是我产生错误的代码

 $enroll = "INSERT INTO enrollment VALUES($srow['family'] $srow['uid'] $course)";

如前所述,您可以通过以下方式访问数组中的值:

"values({$arr['key']})"
此外,在插入之前是否正确转义了所有输入?您是如何执行该查询的


使用SQLAPI将是实现这一点的正确方法(而且更安全)。看看PHP手册上的这一页:,它将帮助您了解管理与数据库交互的正确方法。

在使用双引号中的数组值时,请阅读复杂(卷曲)语法警告:这有一些严重的问题,因为查询中使用了用户数据。尽可能使用事先准备好的陈述。在任何用户提供的数据都指定有
:name
指示符的情况下,这些操作非常简单,稍后将根据您使用的是哪个指示符,使用
绑定参数或
执行
填充指示符。永远不要在你的查询中直接放入
$\u POST
$\u GET
或任何用户数据。首先,php文档提供了如何访问双引号内的数组是的,我刚刚看到你对此的评论,老实说,我到现在为止还不知道这个特性:pAre你说的是像在清理中一样进行转义吗?与此类似:mysqli\u real\u escape\u string?是的,您应该在所有输入触及数据库之前对其进行清理,否则您将暴露于SQL注入中,例如“'admin'或'1'='1'”,以及会破坏站点的危险内容。看看准备好的语句及其参数化值是如何工作的。@AntonioHernández准备好的语句和占位符(参数化)值就是答案。您所做的是将非功能代码武器化。