2014-11-12 3 views
0

Я получил некоторые вопросы, пытается вставить данные из PHP документа, пока я не получил 2 значения, содержащиеся в кавычки внутри как:Удаление одинарные кавычки в PHP

«Rempli d'étoiles»

ид нравится удалить «по пространству или даже ничто».

-> "Rempli г Etoiles" Вот мои, что я пробовал:

$posdeapostrophe = strpos($array, '\''); 
if ($posdeapostrophe == false) 
{ 
    ... 
} 
else 
{ 
    // it goes in this block when it detects a ', but seems like trim doesnt work as i would 

    $newchaine = trim($array, '\''); 
    $sql .= "INSERT INTO categorie (id_cat,name_cat) VALUES (" . $cpt . ",'" .$newchaine . "'); "; 

спасибо!

+0

['$ your_string = str_replace (" '"," ", $ your_string);'] (http://php.net/str_replace) –

+2

Вы также можете попробовать экранировать строки для SQL-контекста. Или переключитесь на более свежий API баз данных и используйте связанные параметры для простоты. – mario

+0

Почему, это ошибка? (* Скорее всего это *). Избегайте своих ценностей или, еще лучше, используйте [** подготовленные заявления **] (http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php) или [** PDO с подготовленными заявления **] (http://php.net/pdo.prepared-statements). и вы сможете ввести ту же самую строку в своей БД, не используя эту дополнительную функцию, плюс она будет более безопасной. –

ответ

0

Вы можете использовать str_replace().

$array = "Some string's"; 
$posdeapostrophe = strpos($array, "'"); 
$val = ''; 
if ($posdeapostrophe !== false) 
{ 
    $val = str_replace("'", "\'", $array); 
} 
echo $val; 

Также можно использовать вместо strpos() и replace(), чтобы избежать одиночные кавычки.

mysqli_real_escape_string($con, $array); //for mysqli 
mysql_real_escape_string($array , $con); //for mysql 
0

Что вы сейчас делаете, это довольно опасно.

Прежде всего, вы должны действительно использовать текущий рекомендуемый метод для выполнения запросов, который является с помощью PDO: http://php.net/manual/en/book.pdo.php

Это как решить проблему котировок и дырку массивной безопасности (SQLI уязвимость) Вы в настоящее время введены в вашем коде.

Если вы все еще хотите, чтобы заменить одиночные кавычки в тексте вы действительно можете делать то, что @scrowler предложил что:

$your_string = str_replace("'", "", $your_string);

Но, пожалуйста, используйте PDO при взаимодействии с базой данных, так как это на самом деле только (безопасный и рекомендуемый) способ сделать это.

+0

Я постараюсь узнать его как можно скорее и изменить свой способ сделать то, спасибо за вашу помощь! – Niko

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