2013-12-10 85 views
0

我目前正在运行此查询来删除我的网站上的邮件系统内的邮件,当用户点击删除查询运行并更新我的数据库中的表。在mysql中运行多个查询?

deleted_to is updated from '0' to '1' 

什么,我也想要做的是捕获用户的ID,并在表“user_who_deleted”

做到这一点我使用$_SESSION['user_id']栏下存储这一点,但我无法找到一个办法让这插入到表中。

有人可以告诉我如何做到这一点。感谢

删除消息的链接代码:

<?php $inbox_set = get_inbox(); 
while ($inbox = mysql_fetch_array($inbox_set)) { ?> 
<a href="delete_message.php?message=<?php echo $inbox['msg_id']; ?>"><div class="message_buttons2">Delete Conversation</div></a> 

查询,设置deleted_to从0到1:

function delete_message_to($message, $user) { 
    global $connection; 
global $_SESSION; 
    $query = "UPDATE ptb_messages 
       SET deleted_to='1' 
       WHERE msg_id='1' "; 
    mysql_query($query, $connection); 
} 

删除位的作品,但现在我想插入用户$_SESSION['user_id']到ptb_messages。 user_who_deleted

我希望这是作为同一查询的一部分运行,如果我可以。我试过类似下面的东西,但它没有做任何事情

function delete_message_next($message, $user) { 
    global $connection; 
    global $_SESSION; 
    $query = "SELECT user_who_deleted 
       FROM ptb_messages 
       SET user_who_deleted =" . $_SESSION['user_id'] . ""; 
mysql_query($query, $connection); 
} 
+3

[请停止使用mysql_ *函数(HTTP: //stackoverflow.com/q/12859942/1238019)在新代码中,它们[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。相反的,对[预处理语句(http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html)看看,然后用[mysqli的(HTTP:/ /php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – zessx

+0

'UPDATE ptb_messages SET deleted_to ='1',user_who_deleted ='something'WHERE msg_id = ...'? – andrewsi

回答

0

除非我误解,难道你只是想这样做吗?

$query = ' 
    UPDATE 
     ptb_messages 
    SET 
     deleted_to=1, 
     user_who_deleted = "'.$_SESSION['user_id'].'" 
    WHERE 
     msg_id=1'; 

理想的情况下,如所提到的,你想去的MySQLi或PDO,并用准备好的语句的工作:

$query = ' 
    UPDATE 
     ptb_messages 
    SET 
     deleted_to= :setDeleted, 
     user_who_deleted = :userId 
    WHERE 
     msg_id= :msgId'; 
$stmt = $dbh->prepare($query); 
$stmt->bindParam(':setDeleted', 1); 
$stmt->bindParam(':userId', $_SESSION['user_id']); 
$stmt->bindParam(':msgId', 1); 
$stmt->execute(); 

http://www.php.net/pdo.prepared-statements