PHP:执行Select语句
我在MySQL中输入了以下查询:PHP:执行Select语句,php,mysql,Php,Mysql,我在MySQL中输入了以下查询: insert into hospital (name,age) values ('william', 'select * from department where age = $agegrp'); 现在我已经获取了这个值(sql),并尝试执行它。我该怎么做 我已将select语句提取到名为$var的变量中 $agegrp = "10"; $value = mysql_query ($var) or die ('error'); 我只得到错误,因此我插入的查
insert into hospital (name,age) values ('william', 'select * from department where age = $agegrp');
现在我已经获取了这个值(sql),并尝试执行它。我该怎么做
我已将select
语句提取到名为$var
的变量中
$agegrp = "10";
$value = mysql_query ($var) or die ('error');
我只得到
错误
,因此我插入的查询有问题。如何解决这个问题?年龄是一个可能是整数的属性。不能在该字段中插入查询。您需要做的是执行查询
"SELECT * FROM Department WHERE age = {$agegrp}"
然后,得到结果,然后执行插入。另外,请在早期查看查询的绑定参数。您不想允许sql注入。我的第一个问题:为什么要在医院表中存储sql代码? 如果您的所有sql代码都嵌入到php程序代码中,这将更有意义。 如果以后更改表设计,则不必更改数据库表的内容 但是为了回答您的问题,$var的内容是一个简单的字符串。您需要对其求值,或者用变量$agegrp的实际值替换字符串“$agegrp”。 所以你可以做:
$agegrp = "10";
$var = str_replace('$agegrp',$agegrp,$var;
$value = mysql_query ($var) or die ('error');
这将是一个简单的解决方案。试试这个
<?php
$con = mysqli_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
$var= mysqli_select_db("my_db", $con);
$var="select * from department where age = $agegrp");
$result=mysqli_query($var);
while($row = mysqli_fetch_array($result))
{
echo $row['age'] ;
echo "<br />";
}
mysqli_close($con);
?>
最好让死亡(mysql_error())
,然后你可以看到错误是什么(我不会破坏惊喜)。你在哪里以及如何设置$var
?如果mysql\u error()
对您没有帮助,您可以显示完整的代码吗?欢迎来到Stack Overflow!请不要对新代码使用mysql.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果您想了解,.no,值$agegrp
不会替换为10
。它不会被执行。当我回显时,它只打印“SELECT*FROM Department WHERE age={$agegrp}”
请不要对新代码使用mysql.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习。