如何使用PHP从表中检索单行?

时间:2015-04-15 09:37:46

标签: php mysql

我已经在其中创建了一个表并存储了值。该表有一个“ID”列,它是唯一的。

现在我创建了一个表单,其中有一个标有 Retrieve 的按钮。当我输入ID并单击 Retrieve 按钮时,我想查看与此ID对应的数据。

如何使用PHP和MYSQL执行此操作?

我下面有一些代码,但它不起作用。没有显示错误消息。但是db连接没有问题。其余功能除“RETRIEVE”外都有效。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_error()) 
{
die("couldn't connect" . $conn->connect_error());
}
echo ("connected successfully");
$id = $_POST['Id'];
$name = $_POST['Name'];
$blood = $_POST['BloodGroup'];


if(isset($_POST['insert'])){
        $insert = "Insert into ins(Id, name, BloodGroup) values ('$id','$name', '$blood')" ;
        if($conn->query($insert) === TRUE) {
        echo ("Input data entered successfully");
        } else {
        echo ("Input data failed to be entered" . $conn->error());
        }
        $conn->close();
} elseif(isset($_POST['update'])) {

        $update = "update ins set Name='".$name."', BloodGroup='".$blood."' where Id='".$id."'";
        mysql_query($update);
        if($conn->query($update) === TRUE) {
        echo ("Data updated successfully");
        } else {
        echo ("Data cant be updated" . $conn->error());
        }
        $conn->close();
} elseif(isset($_POST['delete'])) {
        $id = $_POST['Id'];
        $delete = "delete from ins where Id='".$id."'";
        if($conn->query($delete) === TRUE) {
        echo ("Data deleted successfully");
        } else {
        echo ("Data cant be updated" . $conn->error());
        }
        $conn->close();
}
else {
$id = $_POST['Id'];
$retrieve = "SELECT * FROM ins WHERE Id = ".'$id'."";
$dis = $db->query($retrieve);
$row = $dis->fetch_assoc();
echo 'Details are: '.$row['id'];
}
}
$conn->close();
?>

4 个答案:

答案 0 :(得分:2)

将sql select子句改为:

"SELECT * FROM ins WHERE Id = " .$id. " LIMIT 1";

答案 1 :(得分:0)

$retrieve = "SELECT * FROM ins WHERE Id = ".$id." LIMIT 1";

该限制对您有用

答案 2 :(得分:0)

在SQL语句($ retrieve)中,单引号会为您查找它。请尝试以下任一操作:

  1. 删除$id周围的单引号并保持语句的其余部分相同
  2. '$id'更改为"'{$id}'"(如果您希望在$id值附近获取单引号 - 以防$id为文本值,不是数字)

答案 3 :(得分:0)

试试这个 $ retrieve =“SELECT * FROM ins WHERE Id =”。$ id;
$ dis = $ db-&gt; query($ retrieve);
$ row = $ dis-&gt; fetch_row();