Я пытаюсь вставить несколько разных слов в базу данных, если они еще не находятся в базе данных. Я получаю текст из текстового поля, где пользователь вводит несколько категорий. Я хочу разделить текст, передаваемый из этого текстового поля запятой, и вставить его отдельно в базу данных, если он еще не находится в нем. В настоящее время ничего не вводится в базу данных. Заранее спасибо за вашу помощь!PHP/MySQL вставляет строку в базу данных
Вот мой код, чтобы разделить данные TextField и вставить в базу данных:
$category = trim($_POST['category']);
$cat2 = explode(',', $category);
foreach ($cat2 as $new_interest)
{
$insert_user_interests = sprintf("INSERT INTO interests IF NOT EXISTS name = '". $new_interest . "'" .
"(name) " .
"VALUES ('%s');",
mysql_real_escape_string($new_interest));
mysql_query($insert_user_interests);
}
Использовать подготовленные/параметризованные запросы с PDO или аналогичными. В противном случае вы можете быть уязвимы для инъекционных атак в определенных условиях. И вы даже не избегаете '$ new_intererst'. – Brad
Что значит, я не убегаю '$ new_interest'? Это не ускользает - 'mysql_real_escape_string ($ new_interest)'? – nviens
Это, но какая польза для вас, если вы конкатенируете его, не убегая? 'IF NOT EXISTS name = '". $ New_interest. "'" ' – Brad