PHP:执行Select语句

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'); 我只得到错误,因此我插入的查

我在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');

我只得到
错误
,因此我插入的查询有问题。如何解决这个问题?

年龄是一个可能是整数的属性。不能在该字段中插入查询。您需要做的是执行查询

"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.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习。