PHP:执行Select语句

时间:2012-07-13 11:51:34

标签: 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');

我只得到error所以我插入的查询出错了。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

对我来说第一个问题:为什么要将sql代码存储在医院的桌子上? 如果你的所有sql代码都嵌入你的php程序代码中会更有意义。 如果您以后更改了表设计,则不必更改数据库表的内容。

但要回答你的问题,$ var的内容是一个简单的字符串。你想要的是评估它或用变量$ agegrp的实际值替换字符串'$ agegrp'。 所以你可以这样做:

$agegrp = "10";
$var = str_replace('$agegrp',$agegrp,$var;
$value = mysql_query ($var) or die ('error');

这将是一个简单的解决方案。

答案 1 :(得分:0)

age是一个可能是整数的属性。您无法在该字段中插入查询。你需要做的是执行查询;

"SELECT * FROM Department WHERE age = {$agegrp}"

然后,获取结果,然后执行插入。另外,请尽早查看查询的绑定参数。你不想允许sql注入。

答案 2 :(得分:0)

试试这个。

 <?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);
?>