$names = array();
$names['full-name'] = 'John Doe';
$query = "INSERT INTO users (full_name) VALUES ('$names[full-name]')";
$result = mysql_query($query) or die(mysql_error());
每当我尝试使用包含连字符的数组键创建mysql查询时,我都会遇到语法错误:
解析错误:语法错误,意外' - ',期待']'
我怎么能解决这个问题?谢谢。
答案 0 :(得分:2)
a)看一下PDO(特别准备的语句),你可能只是通过简单地使用变量来攻击SQL注入
b)如果你只想修复那件作品:
$query = "INSERT INTO users (full_name) VALUES ('".$names["full-name"]."')";
答案 1 :(得分:2)
由于尚未提及,这是另一种替代语法:
$query = "INSERT INTO users (full_name) VALUES ('{$names['full-name']}')";
在变量/数组索引周围添加{}
括号,可以像在字符串之外那样引用它。 {}
表示法还允许您在字符串中嵌入多维数组,例如
echo "$x[1][2]";
通常会被PHP视为数组$x[1]
,后跟文字[2]
文本,因为它的数组解析不是“贪婪”。但是将整个数组引用括起来支持PHP解析整个事情。
答案 2 :(得分:0)
变量中包含-
无效。请改用_
答案 3 :(得分:0)
$query = "INSERT INTO users (full_name) VALUES ('".$names[full-name]."')";
答案 4 :(得分:0)
('$names[full-name]')
应更改为('$names[\"full-name\"]')