2014-10-29 115 views
0

我想从我的数据库中提取信息,使用选项列表并选择相应选择的行。

table: sales 

columns: year, q1, q2, q3, q4 

values: 2011, 127.24, 106.54, 88.04, 120.89 

当试图从我的数据库返回$结果查询。它返回两个警告:

的mysql_query()预计参数1是字符串

mysql_error()预计参数1是资源

这是我的代码:

<?php 

$mysqli = mysqli_connect("localhost","admin","admin","testDB"); 

$year= $_POST['year']; 

$taryear= filter_input(INPUT_POST, 'year'); 
$yearsql= "SELECT year FROM sales WHERE year = '".$taryear."'"; 
$result= mysql_query($mysqli, $yearsql) or die(mysql_error($mysqli)); 


?> 

<html> 
<body> 
    <form action = "salespie.php" method = "POST"> 
     <select name = "year"> 
      <option value = "2011">2011</option> 
      <option value = "2012">2012</option> 
      <option value = "2013">2013</option> 
     </select> 
     <input type = "submit" value = "Submit"> 
    </form> 
</body> 
</html> 

我试图回应$year本身,并且它返回2011.

我也echo'd $yearsql结果:SELECT year FROM sales WHERE year = '2011'

我不完全明白我做错了,得到这两个警告。

任何指导/帮助将不胜感激!

感谢,

+5

使用不同的API,另一个(本周第50)。就是这样,我正在去酒吧。这种杜松子酒和滋补品是唯一能“混合”的东西。 – 2014-10-29 20:25:07

+0

你在混合'mysql _ *()'和'mysqli _ *()'。它们是不同的API--只能使用'mysqli _ *()'。 – 2014-10-29 20:26:50

+0

让我来帮你。 http://stackoverflow.com/search?q=mysql_query%28%29+expects+parameter+1+to+be+string | http://stackoverflow.com/search?q=mysql_error%28%29+expects+parameter+1+to+be+resource – 2014-10-29 20:27:36

回答

0

mysqli_connect使用新的面向对象的mysql类并返回一个新的对象。如果你这样做

$result = $mysqli->query($yearsql); 
if(!$mysqli->errno) //Check if an error occured * fixed small typo with an extra o { 
    echo 'Error: '.$mysqli->error; 
} 

问题是你正在使用的mysqli对象与旧的(不推荐)MySQL的方法

查询应该工作。

有mysqli过程函数的mysqli工作。您在哪里使用mysql_querymysql_error替换那些与mysqli_等效。