У меня возникли проблемы при попытке вставить некоторые данные из документа php, пока я не получил 2 значения, которые содержат кавычки внутри, например:
«Rempli d’étoiles»
я хотел бы удалить ‘пробел или даже ничего.
-> «Rempli d 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 . "'); ";
Спасибо!
Ты можешь использовать 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
То, что вы сейчас делаете, довольно опасно.
Прежде всего, вы должны действительно использовать текущий рекомендуемый метод для выполнения запросов, который использует PDO: http://php.net/manual/en/book.pdo.php
Это и решит проблему с кавычками, и огромную дыру в безопасности (уязвимость SQLi), которую вы в настоящее время внедрили в свой код.
Если вы все еще хотите заменить одинарные кавычки в вашем тексте, вы действительно можете сделать то, что предложил @scrowler:
$your_string = str_replace("'", "", $your_string);
Но, пожалуйста, используйте PDO при взаимодействии с базой данных, так как это действительно единственный (безопасный и рекомендуемый) способ сделать это.