2012-07-13 121 views
0

我已经在MySQL中输入以下查询:PHP:执行Select语句

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所以我插入的查询出了问题。我该如何解决这个问题?

+1

这将是更好的有'死(mysql_error())',然后你可以看到的是什么错误(我不会破坏惊喜)。 – Pete 2012-07-13 11:54:32

+0

哪里以及如何设置'$ var'?如果'mysql_error()'不能帮助你,你能显示你的完整代码吗? – Nanne 2012-07-13 11:55:49

+3

欢迎来到Stack Overflow!请不要将'mysql_ *'函数用于新代码。他们不再被维护,社区已经开始[弃用流程](http://goo.gl/KJveJ)。请参阅[**红框**](http://goo.gl/GPmFd)?相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定,[本文](http://goo.gl/3gqF9)将有助于选择。如果你关心学习,[这里是很好的PDO教程](http://goo.gl/vFWnC)。 – 2012-07-13 12:01:42

回答

1

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

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

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

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

0

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

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

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

+0

不,值'$ agegrp'不会被替换为'10'。它不会被执行。当我回显它只是打印'“选择*从部门WHERE年龄= {$ agegrp}” ' – user1523434 2012-07-13 11:59:52

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

请不要使用'mysql_ *'功能的新代码。他们不再被维护,社区已经开始[弃用流程](http://goo.gl/KJveJ)。请参阅[**红框**](http://goo.gl/GPmFd)?相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定,[本文](http://goo.gl/3gqF9)将有助于选择。如果你关心学习,[这里是很好的PDO教程](http://goo.gl/vFWnC)。 – 2012-07-13 12:02:14