php - 未从 PHP 中的 MySQL 表中获取数据

标签 php mysql

我想打印在文本框中输入的 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 但它不起作用。

最佳答案

主要问题是您混合使用了 mysqlimysql。这些是完全不同的 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/

相关文章:

php - 使用 PHP 变量自动填充文本区域

php - 如何显示类别及其子类别

MySQL:选择一定时期内具有一定数量的条目

php - TYPO3 中的提取值

php - MySQL Emoncms PHP 错误 : User Password:NO

php - 根据性别隐藏/显示个人资料字段

php - [Linux, Ubuntu] : Executing a Python script with different users results in different behaviours

php - 使用 grep 在目录中的所有文件中搜索字符串的实例,使用 PHP bash 脚本

php - 使用 PHP MySql 进行关键字搜索?

php - 如何将有值(value)的 TextView 中的值插入到mysql