我试图根据用户输入的条件搜索mysql数据库。这里的脚本试图根据产品密钥提取条目。但是,当我搜索表中存在的密钥时,不会返回任何内容。我是非常新的PHP所以这个代码可能是完全错误的。这是我的代码:
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="../css/style.css">
<title>
Inventory Home Page
</title>
<body>
<?php
$link = mysqli_connect("localhost", "myaccount", "mypass", "Inventory");
mysql_select_db("db_test", $link);
if(!$link){
die ("Could not connect: " . mysql_error($link));
}
$productKey = %product_key_search%;
$query = mysql_query("select * from PC where pk=$productKey") or die(mysql_error($link));
while($row=mysql_fetch_array($query)){
echo 'Product Key: ' .$row['pk'];
echo 'Make: ' .$row['make'];
echo 'Model: ' .$row['model'];
echo 'Type: ' .$row['type'];
echo 'Content: ' .$row['content'];
echo 'Status: ' .$row['status'];
echo 'Workstation: ' .$row['asset'];
echo 'Steam Account Number: ' .$row['steam_acct_num'];
}
?>
</body>
</html>
请帮助..
答案 0 :(得分:0)
您的字符串值周围缺少引号。另外,如果您使用的是%
通配符,则需要使用LIKE
,而不是=
:
$query = mysql_query("select * from PC where pk=$productKey") or die(mysql_error($link));
应该是:
$query = mysql_query("select * from PC where pk LIKE '$productKey'") or die(mysql_error($link));
此外,如果您实际检查过代码中的错误,则会出现第一个错误。在尝试检索结果集之前,您应该使用mysqli_error()
查看是否发生了错误。
您还应该将mysqli_fetch_array()
更改为mysqli_fetch_assoc()
,因为您不需要基于数字和键的索引数组结果。
而且,正如@Pitchinnate指出的那样,你混合了mysql和mysqli函数。这看起来像复制和粘贴代码。 之前你应该理解代码。
答案 1 :(得分:0)
您正在使用mysqli_connect
,其余的都是mysql_
个功能。这些不能混合。
答案 2 :(得分:0)
试试这样。
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="../css/style.css">
<title>
Inventory Home Page
</title>
<body>
<?php
$link = mysql_connect("localhost", "myaccount", "mypass", "Inventory");
mysql_select_db("db_test", $link);
if(!$link){
die ("Could not connect: " . mysql_error($link));
}
$statement = "select * from PC where pk LIKE %".$productKey."%";
$query = mysql_query( $statement) or die(mysql_error($link));
while($row=mysql_fetch_array($query)){
echo 'Product Key: ' .$row['pk'];
echo 'Make: ' .$row['make'];
echo 'Model: ' .$row['model'];
echo 'Type: ' .$row['type'];
echo 'Content: ' .$row['content'];
echo 'Status: ' .$row['status'];
echo 'Workstation: ' .$row['asset'];
echo 'Steam Account Number: ' .$row['steam_acct_num'];
}
?>
</body>
</html>