php - 在 sql 查询中使用 php 变量

标签 php mysql sql

在我的 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/

相关文章:

sql - 如何最好地重新创建 Oracle 数据库?

python - Django:如何根据查找表的值连接表

php - Woocommerce 订阅自定义费用添加到经常性总额

php - PHP REST API 如何接收 PUTted 数据?

php - 寻找适合我们案例的 NoSQL 数据库

MySQL如何获取每个关键字的行数

mysql - 使用 Join 和Where 查找重复项

php - 在 Laravel/Lumen 中,为什么 catch block 没有捕获我的异常?

javascript - jQuery/JS/PHP - 仅在提交后禁用表单和提交按钮

mysql - 首先按特定字段值 LIKE 排序