我想打印在文本框中输入的ID的名称和姓氏。这是PHP和HTML代码:
<head>
<title>
Search your name by ID
</title>
</head>
<?php
if(isset($_POST["searchname"]))
{
$id = $_POST["searchname"];
$connect = new mysqli("localhost","adarsh","Yeah!","adarsh");
$a = mysql_query("Select * from users where id='$id'",$connect);
$row = mysql_fetch_assoc($a);
echo "$row[0] , $row[1] , $row[2]";
}
else
{
echo "error";
}
?>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="text" maxlength="6" name="searchname">
<input type="Submit" name="Submit">
</form>
</body>
输入ID时的输出:
, ,
MySQL表中有条目但我无法获取它们。我的代码出了什么问题?
更新我还尝试了mysql_fetch_array
,但它无效。
答案 0 :(得分:4)
主要问题是你是miximg mysqli
和mysql
。这些是完全不同的API。
假设你有
$id = $_POST["searchname"];
$connect = new mysqli("localhost","adarsh","Yeah!","adarsh");
接下来你应该:
$result = $connect->query("Select * from users where id='$id'");
然后得到结果:
while ($row = $result->fetch_assoc()) {
var_dump($row);
}
当然,不要直接将值放入查询中,而是使用预备语句。
<强>更新强>: 关于错误:
你的主要错误是混合api。当您使用mysql
(已弃用且不得再使用)时,您无法使用任何mysqli
个功能,反之亦然。
下一步 - 当您使用new
创建mysqli对象时,您应该使用面向对象的样式,即从mysqli对象调用方法。
答案 1 :(得分:0)
试试这个:
<html>
<head>
<title>
Search your name by ID
</title>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="text" maxlength="6" name="searchname">
<input type="Submit" name="Submit">
</form>
</body>
</html>
<?php
if(isset($_POST["searchname"])){
$id = $_POST["searchname"];
$connect = mysql_connect("localhost","adarsh","Yeah!","adarsh");
$result = mysql_query("Select * from users where id='$id'",$connect);
$row = mysql_fetch_assoc($result);
print_R($row);
}else{
echo "there is something wrong";
}