2017-01-31 3 views
0

Я использую MySQLi в PHP и имею простой номер обновления запросов.PDO Как обновить значение и получить обновленное значение

UPDATE votes SET yes=yes+1 WHERE artId=$artId 

После этого обновления я хотел бы получить значение, которое я обновил. Можно ли сделать это в одном запросе? Или мне нужно сделать отдельный запрос SELECT?

спасибо.

+0

Не ясно ли вы использовать PDO или MySQLi, но я не думаю, что имеет значение: в MySQL вы не можете прочитать из 'UPDATE ', независимо от клиентской библиотеки. Я также предлагаю вам прекратить вводить необработанные PHP-переменные в SQL, использовать подготовленные операторы по назначению. –

+0

можно найти: http://stackoverflow.com/questions/7446073/get-updated-value-in-mysql-instead-of-affected-rows –

+0

Я не ввожу переменные RAW. Я использую подготовленные заявления, это только пример. Спасибо за ссылку. Так что, я никогда не использую DELIMiTERS, поэтому я не могу сейчас использовать его. – Klick

ответ

-1

Я думаю, что это не возможно сделать это в одном запросе .. Но есть и другие эффективные способы вы можете придумать, как

  1. Использование SQL переменных для хранения обновленного значения, например

    UPDATE votes SET 
    yes= @yes:= yes + 1 
    WHERE artId='$id'; 
    SELECT @yes; 
    

И второй, и эффективный, как @Alvaro, предложил вам в комментарии использовать подготовленные заявления. как

//DELIMITER 

CREATE PROCEDURE updateme(ids varchar(64)) 
    BEGIN 
    UPDATE votes SET 
    yes= @yes:= yes + 1 
    WHERE artId= ids; 

    SELECT @yes; 
END // 
DELIMITER 

И тогда вы можете вызвать эту процедуру в коде

+0

Сначала ваш код возвращает объект PDO: «object (PDOStatement)» # 7 (1) { ["queryString"] => строка (66) "UPDATE голосов SET yes = @yes: = yes + 1 WHERE artId = '22 «; SELECT @yes " }" нет информации об обновленном значении. – Klick

+0

О Delimiter, я никогда не видел его раньше, поэтому я не знаю, как его использовать. Можете ли вы воплотить пример? Спасибо – Klick

+0

http://www.mysqltutorial.org/stored-procedures-parameters.aspx –

Смежные вопросы