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

时间:2015-09-21 11:19:05

标签: 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,但它无效。

2 个答案:

答案 0 :(得分:4)

主要问题是你是miximg 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对象调用方法。

答案 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";
}