gpt4 book ai didi

php - 我无法使用 PDO 过程更新数据中的状态行

转载 作者:行者123 更新时间:2023-11-29 19:23:27 24 4
gpt4 key购买 nike

我在使用 PDO 过程更新 mysql 表中的状态行时遇到麻烦。状态行在表中定义为 0,所以我希望每当我点击确认按钮时它都会更改为 1,但它不能,我整晚都在尝试修复它,但我做不到。

这是我的数据库连接

<?php
class Database
{
private $host = "localhost";
private $db_name = "jerrydb";
private $username = "root";
private $password = "";
public $conn;





public function dbConnection()
{

$this->conn = null;
try
{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}

return $this->conn;
}
}

?>

这是我的脚本,我希望每当我单击它时确认都会消失,同时将状态行更改为 1。

<?php


if (isset($_GET['entity']) && isset ($_GET['action']) && isset($_GET['user_id'])){

$entity = mysqli_real_escape_string($db, $_GET['entity']);
$action = mysqli_real_escape_string($db, $_GET['action']);
$user_id = mysqli_real_escape_string($db, $_GET['user_id']);



$query = "UPDATE jerrydb set status = '1' WHERE user_id='$user_id'";

$db->query($query);
}




$query = "SELECT * FROM jerrydb WHERE status='0' ORDER BY user_id DESC";

$jerrydb = $db->query($query);

?>

<?php if($row = $jerrydb->fetch_assoc()) { ?>


<tr>
<td><a href="index.php?entity=go&action=approve&id=<?php echo $row['id'];?>" class="btn btn-success">Confirm</a> </td>



</tr>

<?php } ?>

最佳答案

你实际上正在使用PDO,因此你没有必要使用这些mysqli_real_escape_string当你使用PDO时最好准备好bind、execute语句。

<?php
if (isset($_GET['entity']) && isset($_GET['action']) && isset($_GET['user_id'])) {
$entity = $_GET['entity'];
$action = $_GET['action'];
$user_id = $_GET['user_id'];
$query = $conn->prepare("UPDATE jerrydb SET status = '1' where user_id = ? ");
if ($query->execute([$user_id])) {
echo "status updated";
} else {
echo "not";
}
}
$query = $conn->prepare("SELECT * FROM jerrydb WHERE status='0' ORDER BY user_id DESC");
$query->execute();
$jerrydb = $query->fetchall(PDO::FETCH_ASSOC);
if (count($jerrydb) > 0) { // we have results
foreach ($jerrydb as $key => $row) {
}
?>

<tr>
<td><a href="index.php?entity=go&action=approve&id=<?php
echo $row['id'];
?>" class="btn btn-success">Confirm</a> </td>



</tr>

<?php
}
?>

要了解有关 PDO 的更多信息,请访问此网站,它解释得很好,让一切变得简单 https://phpdelusions.net/pdo

关于php - 我无法使用 PDO 过程更新数据中的状态行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42298141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com