gpt4 book ai didi

php - 使用一个php文件处理两个mysql查询?

转载 作者:行者123 更新时间:2023-11-29 14:07:59 28 4
gpt4 key购买 nike

有没有一种方法可以使用同一个 php 文件“favorite.php”在每次访问时执行两个单独的 mysql 查询。

基本上,我在用户个人资料页面上有一个名为“添加到收藏夹”的链接,该链接链接到 favorite.php 并运行查询以将用户添加到 session 用户收藏夹列表中。我想向该文件添加另一个查询以在单独的场合运行,因此下次单击该链接时会显示表中是否存在收藏夹 ID 以将其删除,从而从 session 用户收藏夹列表中删除该用户?

这里我已经插入到查询中,现在我只需要找到一种方法来表示如果第二次单击链接存在则删除最喜欢的ID?

<?php

require_once('includes/session.php');
require_once('includes/functions.php');
require('includes/_config/connection.php');


session_start();


confirm_logged_in();




if (isset ($_GET['to'])) {
$user_to_id = $_GET['to'];


}


if (!isset($_GET['to']))
exit('No user specified.');

$user_id = $_GET['to'];

$result = mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")")
or die(mysql_error());

if($result = mysql_query($query))

$result = mysql_query("DELETE FROM ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")")
or die(mysql_error());

header("Location: profile.php?id=" . $user_to_id['user_id']);


?>

希望这是有道理的,谢谢。

最佳答案

假设您有 PHP 5.3 或更高版本,下面是我编写脚本以避免 SQL 注入(inject)的方法。我倾向于使用closures / anonymous functions用于数据库查询,但您可以将它们与其他所有内容内联使用。

最后一行我很困惑,除非 $_GET['to'] 是一个数组。

<?php

require_once('includes/session.php');
require_once('includes/functions.php');

$connection = new PDO('mysql:host=example.com;dbname=you_database_name', 'mysql_username', 'mysql_pass');

session_start();
confirm_logged_in();

$user_to_id = isset($_GET['to']) ? $_GET['to'] : null;

if (is_null($user_to_id)) {
exit('No user specified.');
}

$user_id = $_GET['to'];

$insert = (function () use ($connection, $user_to_id) {
$sql = "INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (?, ?)";
$statement = $connection->prepare($sql);

$result = $statement->execute(array(
$_SESSION['user_id'],
$user_to_id
));

return $result;
});

if ($insert() === true) {
$delete = (function () use ($connection, $user_to_id) {
$sql = "DELETE FROM ptb_favorites WHERE user_id = ? AND favorite_id = ?";
$statement = $connection->prepare($sql);

$result = $statement->execute(array(
$_SESSION['user_id'],
$user_to_id
));

return $result;
});

$delete();
}

// Not sure about this line if $user_to_id is not an array
header("Location: profile.php?id=" . $user_to_id['user_id']);

关于php - 使用一个php文件处理两个mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048732/

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