PHP 尝试编写插入语句时出现语法错误
PHP syntax error when I try to write an insert statement
所以我有 $sql 变量,它应该是一个包含 sql 插入的字符串 statement.Here 的代码片段:
$fields = array('Nume_dep' => $params['Nume_dep'],
'Id_manager' => $params['Id_manager']);
$id = $params['Id_manager'];
$sql = "insert into departament(Nume_dep,Id_manager) values('$params['Nume_dep']', CONVERT($id, UNSIGNED))";
这是我收到的错误消息:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE),
expecting identifier (T_STRING) or variable (T_VARIABLE) or number
(T_NUM_STRING)
insert语句语法错误,不知如何修正。
在字符串中PHP只会做相当基本的自动变量扩展。问题在于此处的索引运算符:$params['Nume_dep']
考虑使用准备好的语句以防止 SQL 注入。如果攻击者可以确定,你的函数是用 "', 43); drop table department; --"
之类的东西作为 $params['Nume_dep']
的值调用的,你就会遇到大麻烦。
$id = $params['Id_manager'];
$nume_dep=$params['Nume_dep'];
$sql = "INSERT INTO departament(Nume_dep,Id_manager) values('$nume_dep', CONVERT($id, UNSIGNED))";
所以我有 $sql 变量,它应该是一个包含 sql 插入的字符串 statement.Here 的代码片段:
$fields = array('Nume_dep' => $params['Nume_dep'],
'Id_manager' => $params['Id_manager']);
$id = $params['Id_manager'];
$sql = "insert into departament(Nume_dep,Id_manager) values('$params['Nume_dep']', CONVERT($id, UNSIGNED))";
这是我收到的错误消息:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
insert语句语法错误,不知如何修正。
在字符串中PHP只会做相当基本的自动变量扩展。问题在于此处的索引运算符:$params['Nume_dep']
考虑使用准备好的语句以防止 SQL 注入。如果攻击者可以确定,你的函数是用 "', 43); drop table department; --"
之类的东西作为 $params['Nume_dep']
的值调用的,你就会遇到大麻烦。
$id = $params['Id_manager'];
$nume_dep=$params['Nume_dep'];
$sql = "INSERT INTO departament(Nume_dep,Id_manager) values('$nume_dep', CONVERT($id, UNSIGNED))";