我正在尝试从我的数据库中提取信息,使用选项列表并选择相应选择的行。
table: sales
columns: year, q1, q2, q3, q4
values: 2011, 127.24, 106.54, 88.04, 120.89
尝试从我的数据库返回$ result查询时。它返回两个警告:
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年。
我也回复了$yearsql
,结果是:SELECT year FROM sales WHERE year = '2011'
我不太明白为了得到这两个警告我做错了什么。
任何指导/帮助将不胜感激!
谢谢,
答案 0 :(得分:4)
正如Fred在评论中提到的,您正在混合使用mysql_*
和mysqli_*
个功能。
They are not the same thing.
鉴于您已通过连接链接,您可能希望改为使用mysqli_query。
答案 1 :(得分: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_query
或mysql_error
替换mysqli_
等效内容的人。