在我的 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 描述”。 因此它不从先前定义的变量中获取值? 有帮助吗?
最佳答案
首先,您的代码是完全不安全的——您不应将用户数据直接传递到您的查询中。关于它的话题很多,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}
是尝试访问不存在的数组 $desc
的第 $i
索引。使用 $desc$i
或使用串联来分隔变量。
关于php - 在 sql 查询中使用 php 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773086/