我想打印在文本框中输入的 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
但它不起作用。
最佳答案
主要问题是您混合使用了 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 对象调用方法。
关于php - 未从 PHP 中的 MySQL 表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693890/