2013-06-10 3 views
0

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

Первая страница сообщений об этом в форме ввода:

$note="Here is some example text"; 

Приемные страницы:

$note = $_POST['note']; 
$note = mysql_real_escape_string($note); 
$sql="UPDATE some_table SET notes='$note' WHERE id='$some_id'"; 
$result=mysql_query($sql); 

Когда я вынимаю линию mysql_real_escape_string он работает, но не с ним там. Что мне не хватает?

Спасибо!

+4

Пожалуйста, не используйте 'mysql' библиотеки, как это рекомендуется в пользу' mysqli' или 'PDO'. – j883376

+0

Произошла ошибка при попытке выполнить запрос? –

ответ

1

Я настоятельно рекомендую использовать подготовленный выписку, mysql_real_escape_string() не будет полностью защищать вас от SQL Injection.

Пример для обновления:

<?php 
// connection 
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 

// query 
$sql = "UPDATE some_table 
     SET notes=? 
     WHERE id=?"; 
$q = $conn->prepare($sql); 
$q->execute(array($$_POST['note'], $some_id)); 
?> 

Подробнее: http://www.php.net/manual/en/intro.pdo.php

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