我有这样的功能
function multiple_delete($entity1,$entity2,$entity2) {
$query = "SELECT * FROM tablename WHERE id = '4' ";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $entity1;
echo $entity2;
echo $entity3;
}
我的函数调用是
multiple_delete('$row[\'pic_title\']', '$row[\'pic_brief\']', '$row[\'pic_detail\']');
请记住,我通过参数传递的三个值是特定表的实体名称。
现在这个函数将它打印为字符串ie($ row ['pic_title'],$ row ['pic_brief']',$ row ['pic_detail'])因此不会将其解析为我想要的值它要做。如果它将其解析为值,那么我将能够从数据库中获取记录。我试过单引号,双打,连接运算符等的组合有任何方式我告诉脚本不解析它作为字符串而是对待它,因为它已被声明从数据库中获取值。 php有什么功能吗?或者我错了逻辑。
如果我跳过参数并在函数中声明这样的东西。
echo $row['pic_title'];
echo $row['pic_brief'];
echo $row['pic_detail'];
它完美无缺。为什么当我尝试在参数的帮助下实现同样的事情时,它拒绝从数据库中获取值,而是从函数调用中返回相同的声明字符串。
请不要告诉我,我不需要该参数,我需要它,因为我希望它执行动态数据操作,关于不同的表和不同的表实体。以上功能只是我的问题的证明而不是确切的功能。如果你想查看确切的功能,你可以在这里查看。
What is wrong with my function?
谢谢
答案 0 :(得分:1)
只需传递列的名称:
multiple_delete('pic_title', 'pic_brief', 'pic_detail');
然后,您可以使用它们将行命名为键来访问行数组中的相应值:
function multiple_delete($entity1, $entity2, $entity3) {
$query = "SELECT * FROM tablename WHERE id = '4' ";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $row[$entity1];
echo $row[$entity2];
echo $row[$entity3];
}