2010-04-02 5 views
2

Вот как я вставляю данные в db, но теперь я хочу, чтобы конкретный столбец обновлялся, как мне это сделать?Как обновить дату с помощью phpmysql

<?php 

$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("form", $con); 


$sql="INSERT INTO Customer (Name, Address, City, Pincode, State, Country, Phone, Mobile, Fax, Email, Website, Notes) 
VALUES 
('$_POST[name]','$_POST[address]','$_POST[city]','$_POST[pincode]','$_POST[state]','$_POST[country]','$_POST[phone]','$_POST[mobile]','$_POST[fax]','$_POST[email]','$_POST[url]','$_POST[notes]')"; 


if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "1 record added"; 

mysql_close($con); 

?> 
+1

Какая колонка? Обновлено до чего? –

+2

Этот код чрезвычайно уязвим для SQL-инъекции. –

+0

Off topic: SO должен предупреждать пользователей, если они сохраняют изменения в уже измененном вопросе. (Я бы предложил его на мета, но моя учетная запись там не работает.) –

ответ

0

Используйте UPDATE запрос в темпе INSERT.

Что-то вроде:

$sql="UPDATE Customer SET Name = $new_name WHERE...."; 

Остальной код остается тем же.

3

SQL-запрос на обновление выглядит следующим образом:

UPDATE customers SET fieldname = newvalue WHERE id = '$id' 

Полное руководство синтаксиса в http://dev.mysql.com/doc/refman/5.0/en/update.html.

Кроме того, вы можете просмотреть фильтрацию любого пользовательского ввода перед отправкой базы данных. Использование mysql_real_escape_string() в значительной степени является необходимым по соображениям безопасности.

+0

YOu видел код, который я использовал для вставки. Теперь, если есть n записей, мне нужно выбрать один столбец и отредактировать данные и вернуть их в db. Plz дает мне фрагмент – 2010-04-02 07:05:46

+0

Если вы меняете все столбцы на одно и то же значение, вы можете запустить «UPDATE клиенты SET fieldname = newvalue». Если вам нужно редактировать каждый по отдельности, насколько я знаю, вам придется запускать отдельный запрос для каждой записи. –

+0

хорошо, это работает. – 2010-04-02 09:57:24

0

Попробуйте использовать mysqli_query, чтобы избежать SQL-инъекций и избежать значений столбца, а также назначать свои собственные ценности перед вставкой в ​​БД.

like;

(!mysql_query($sql,$con)) 

обновить любой столбец в вашем Mysql БД,

sql = "UPDATE customers SET columnname = newvalue WHERE id = '$id'"; 


if (!mysqli_query($sql,$con)) 
{ die('Error: ' . mysqli_error()); 
} 
$con->close; 
Смежные вопросы