我正在尝试使用php从表单中获取数据来更新mysql表。
当我用这个
运行脚本时$query="UPDATE customers SET background='$_GET['background']',font='$_GET['font']',fontcolour='$_GET['fontcolour']',fontsize='$_GET['fontsize']',title='$_GET['title']' WHERE client='$_GET['client']'";
我得到一个黑屏 但如果我做以下脚本
$background=$_GET['background'];
$client=$_GET['client'];
$query="UPDATE customers SET background='$background' WHERE client='$client'";
它经历了很好的
虽然我可以这样做,但我试图理解为什么我不能把正确的方法放入查询中,而不是拥有比必要更多的代码行。
注意:剥离的所有其他代码都可以发布。
答案 0 :(得分:1)
将您的代码更改为此
$query="UPDATE customers SET background='" . $_GET['background'] . "',font='" . $_GET['font'] . "',fontcolour='" . $_GET['fontcolour'] . "',fontsize='" . $_GET['fontsize'] . "',title='" . $_GET['title'] . "' WHERE client='" . $_GET['client']."'";
此外,您的代码易受SQL注入攻击
答案 1 :(得分:-1)
$query="UPDATE customers SET background='$_GET[background]',font='$_GET[font]',fontcolour='$_GET[fontcolour]',fontsize='$_GET[fontsize]',title='$_GET[title]' WHERE client=$_GET[client]'";
当我们使用双引号时,我们无法在单引号中编写数组索引
SQL注入警报!