Доброй ночи!
Вопрос такой: Как изменить значение в поле таблицы?
Есть таблица wp_posts, там хранятся купоны, у купонов есть post_title, нужно сделать UPDATE всем купонам у которых ID в промежутке от 23504 - 28503.
DECLARE @i INT
DECLARE @c VARCHAR
WHILE @i <= 5000
@c=''
IF(@i < 10)
@c = '000'.@i;
END
IF(@i < 100)
@c = '00'.@i;
END
IF(@i < 1000)
@c = '0'.@i;
END
IF(@i <= 5000)
@c =@i;
END
@i++
END WHILE
UPDATE em_posts WHERE ID>=23504 AND ID<=28503
SET post_title = @i, post_name = @i
Ответ MySQL
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @i INT
DECLARE @c VARCHAR
WHILE @i <= 5000
@c=''
IF(@i < 10)
@c = '000'.' at line 1
Я так понимаю вся конструкция неправильна?
Также попробовал сделать php-скрипт:
<?php
init_pdo();
function init_pdo ()
{
try {
$dsn = "mysql:dbname=dbname;host=ip";
$pdo = new PDO($dsn, 'dbuser', 'dbpass', array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
for($i=0; $i <= 5000; $i++){
$coupon = '';
if($i < 10) {
$coupon = '000'.$i;
} else if($i < 100) {
$coupon = '00'.$i;
} else if($i < 1000) {
$coupon = '0'.$i;
} else if($i <= 5000) {
$coupon = $i;
}
$sql = "UPDATE em_posts WHERE ID BETWEEN 23504 AND 28503
SET post_title = i, post_name = i";
$q = $pdo->prepare($sql);
$q->execute();
}
}
catch(PDOException $e)
{
var_dump($e);
die;
}
return $pdo;
}
?>
Запускаю через ssh php script.php - ответа вообще никакого нет, ни ошибок, ничего...
Спасибо за уделенное время!)