在我的php脚本中,我在sql查询中使用了一个php变量.php变量通过post变量获取其值,如下所示:
$desc0=$_POST['desc0'];
$desc1=$_POST['desc1'];
$desc2=$_POST['desc2'];
$desc3=$_POST['desc3'];
$desc4=$_POST['desc4'];
$desc5=$_POST['desc5'];
$desc6=$_POST['desc6'];
$desc7=$_POST['desc7'];
$desc8=$_POST['desc8'];
$desc9=$_POST['desc9'];
查询是:
for($i=0;$i<10;$i++)
{
$q="insert into photos(name,category,description) values ('{$name{$i}}','$category','{$desc{$i}}')";
}
问题是,在提交表单时,我收到错误消息 “undefined variable desc”。 因此它没有从先前定义的变量中获取值? 有什么帮助吗?
答案 0 :(得分:3)
首先,您的代码完全不安全 - 您不应将用户数据直接传递到查询中。关于它的主题很多,this是一个良好的开端。
接下来,您不需要以如此奇怪的方式存储数据。如果你想传递20张照片怎么办?在HTML中,将您的字段命名为photos[]
- 在PHP中,您的值将被正确解析为数组$_POST['photos']
,因此您将能够使用数组:
$photos = $_POST['photos'];
foreach($photos as $photo)
{
//$photo contains certain item, so handle it with your logic
}
最后,您的问题是因为使用大括号进行数组解除引用的PHP可能性不明显。因此,$desc{$i}
尝试访问不存在的数组$i
的{{1}}索引。使用$desc
或使用连接来分隔变量。
答案 1 :(得分:0)
您必须将$desc{$i}
更改为${"desc" . $i}