我已经在其中创建了一个表并存储了值。该表有一个“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();
?>
答案 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)中,单引号会为您查找它。请尝试以下任一操作:
$id
周围的单引号并保持语句的其余部分相同'$id'
更改为"'{$id}'"
(如果您希望在$id
值附近获取单引号 - 以防$id
为文本值,不是数字)答案 3 :(得分:0)
试试这个
$ retrieve =“SELECT * FROM ins WHERE Id =”。$ id;
$ dis = $ db-&gt; query($ retrieve);
$ row = $ dis-&gt; fetch_row();