好吧,真的很复杂的标题,让我解释一下。如何使用SQL查询中的查询进行查询
我试图插入SQL查询到我的SQL数据库,例如
INSERT INTO sample_db(query) VALUES ('SELECT * FROM users WHERE id={$userID}')
再后来就从另一个PHP文件,我会做这样的事情:
mysqli_query($queryfromabove);
的问题是PHP变量不被通过。 (它存在于我称之为的文件中)我知道这非常非正统,可能不推荐,但是有没有人知道这样做?
如这里要求的实际代码:
$sql="INSERT INTO awards(name,image,query,clm,type,number) VALUES ('".$_POST['name']."','".$_POST['image']."','".$_POST['query']."','".$_POST['column']."','".$_POST['condition']."','".$_POST['number']."')";
mysqli_query($conn,$sql);
我赞同所有的职位,并知道他们有正确的数据。最重要的POST变量这里,为$ _ POST [ '查询'],因为它包含:
SELECT * FROM crts WHERE id='$crtid'
然后,从另一个文件(原谅马虎的变量名,这是一个WIP):
$that = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM awards WHERE id=2"));
echo $that['query'].'<br>';
$crtid = $_SESSION['crt']['id'];
$query = $that['query'];
$thisquery = mysqli_query($conn,$query);
$finally = mysqli_fetch_assoc($thisquery);
print_r($finally);
ID 2是我插入所有帖子的sql结果的ID。
这是在单引号查询? '$ queryfromabove ='query';' – chris85
不,查询据我所知不是。其实非常具体,我从$ _POST变量中获得第一个查询。编辑:哦,你的意思是$ queryfromabove变量。不,当我回应这个变量时,我没有看到任何引号。 – Newah
不要这样做。从用户可以任意更改的变量中获取查询是一个严重的安全问题。想象一下,他们发布了查询“DROP TABLE sample_db”。 – Actorclavilis