2013-04-21 2 views
0

У меня есть таблица mysql для продуктов. В столбце products_image есть некоторые плохие данные. Идя вперед, я могу использовать php и делать str_replace, но моя проблема в том, что текущие данные.Санизировать данные в таблице Mysql

Я хочу обновить product_image, являющийся URL-адресом или образцом образа продукта. Он имеет ./ в пути, где он должен быть /.

Есть ли способ запустить инструкцию обновления с помощью хранимой процедуры в mysql (без php) ИЛИ, использовать php, как я сделал ниже, но не работает хорошо. Когда я попробовал его в php (см. Ниже), он работал по большей части, но он был приурочен. (12779 строк) Надеюсь, вы сможете помочь. Благодарю. KP

<pre> $sql ="Select products_image from products"; 
     $result = mysql_query($sql,$link); 
     while ($row = mysql_fetch_assoc($result)) { 

     $products_image = $row['products_image']; 
     $image = str_replace("./","/", $products_image); 

     $sql1="UPDATE products set products_image='$image'"; 
     $result1 = mysql_query($sql1,$link); 
      } 
</pre> 
+0

Что такое "плохо данные"? – zerkms

ответ

2

Используйте функцию REPLACE.

UPDATE products SET products_image = REPLACE(products_image, "./", "/") 
0

минимальное изменение в свой код:

изменение

$sql1="UPDATE products set products_image='$image'"; 

в

$sql1="UPDATE products set products_image='$image' WHERE products_image = $row['products_image']"; 
+1

Не могли бы вы предоставить объяснение вашего кода? – Jesse

+0

Он основан на OP-кодах. он обновляет 'product_image' на основе предыдущего оператора SELECT. – Amir

+0

Этот ответ, похоже, не помогает в вопросе. Вы бы лучше всего объяснили свой ответ немного в будущем. –