2014-10-29 113 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_等效。