-3

好吧,我正在制作一个 PHP 脚本,它找到任何行 WHERE user_id 等于登录用户的 user_id,如果找到与用户具有相同 user_id 的任何行,则将带有她的 user_id 的所有行从friend_requests “移动”到新的名为friend_requestes_notificated的表

除了将行复制到新表后删除行的代码外,我的脚本中一切正常吗?


这就是错误:

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'DELETE FROM friend_requests WHERE user_id=1' 附近使用正确的语法”


代码:

<?php include_once("includes/head.php"); ?>
<?php require_once("includes/connect/connect.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php require_once("includes/jquery.php"); ?>

<?php function friend_request_notification(){

global $db;
global $userid;

$userid = $_SESSION['userid'];

$query_id_see = "SELECT user_id FROM friend_requests WHERE user_id=\"{$userid}\" ";
$result_set3 = mysql_query($query_id_see, $db)  or die(mysql_error());

$change_table = "INSERT INTO friend_requests_notificated (id, user_id, user_id_requester) SELECT id, user_id, user_id_requester FROM friend_requests WHERE user_id={$userid} DELETE FROM friend_requests WHERE user_id={$userid}";

$change_table2 = mysql_query($change_table) or die(mysql_error());

if ($id_requests = mysql_fetch_array($result_set3)){
}

else

{
}

}

if ($id_requests = mysql_fetch_array($change_table2)){
}

else
{
}


friend_request_notification();
?>   
4

1 回答 1

1

您需要将插入查询和删除查询分开。你不能同时做这两件事。(我在那里看到一个选择查询。这也需要是它自己的查询)。

$insert_table = "INSERT INTO friend_requests_notificated (id, user_id, user_id_requester) SELECT id, user_id, user_id_requester FROM friend_requests WHERE user_id={$userid}";
$change_table2 = mysql_query($insert_table) or die(mysql_error());

$delete_table = "DELETE FROM friend_requests WHERE user_id={$userid}";
$change_table3 = mysql_query($delete_table) or die(mysql_error());

另外,请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-04-13T20:50:46.040 回答