апостроф, вызывающий ошибку при дублировании строк элементов таблицы, уже запущенных через mysqli_real_escape_string & amp; отделка

Я был успешен с дублированием объединенных таблиц. Ура!

Теперь, после ряда тестов, я обнаружил, что один апостроф (экранированные элементы) не принимается. При первоначальном создании новых строк таблиц в форме все выполнялось следующим образом:

$unit_id = mysqli_real_escape_string($dbc, trim($_POST['ajax_unit_id']));

Теперь, когда я дублирую эти строки для создания новых записей, я, кажется, не знаю, где / как снова escape_string, чтобы снова разрешить одиночные апострофы, такие как заголовок с именем Don's Supah-Dupah App,

Дублирование php:

  $sql1 = "CREATE TEMPORARY TABLE   tmp
SELECT          *
FROM                ".ID_TABLE."WHERE           `unit_id` = " . $id . "";
$result = mysqli_query($dbc,$sql1) or die(mysqli_error($dbc));

$sql2 = "ALTER TABLE      tmp
DROP COLUMN     `unit_id`";
$result = mysqli_query($dbc,$sql2) or die(mysqli_error($dbc));$sql3 = "UPDATE           tmp
SET                 `title` = '" . $titleStamp . "'";

# ************************************************************ #
# ****** This is where I believe the issue is occurring ****** #
# ************************************************************ #$result = mysqli_query($dbc,$sql3) or die(mysqli_error($dbc));
$sql4 = "INSERT INTO      ".ID_TABLE."SELECT          0,tmp.*
FROM                tmp";
$result = mysqli_query($dbc,$sql4) or die(mysqli_error($dbc));

$unit_id1 = $dbc->insert_id;  //mysqli_insert_id($dbc);   // Store new unit_id as var

$sql5 = "DROP TABLE       tmp;";
$result = mysqli_query($dbc,$sql5) or die(mysqli_error($dbc));

0

Решение

После повторного прохождения кода я обнаружил, что ошибка на самом деле не имеет ничего общего с дублированием … вроде.

Замечания: Я даю этот ответ на тот случай, если он поможет кому-то отстраниться, посмотреть на собственную проблему с 5000 метров … вместо 5 дюймов. Надеюсь, это поможет кому-то вытащить себя из кроличьей норы, чтобы получить лучшую перспективу.

Ранее, до дублирования, я бы установил переменную $title который был сгенерирован начальным выбором SQL

$row = mysqli_fetch_array($rdata);
$title = $row['title'];

…затем объединить title и datetimestamp,

date_default_timezone_set(DEFAULT_TZ);              // Default timezone set as Australia/Melbourne
$timestamp  = date('Y/m/d h:i:s:a');
$titleStamp = $title." COPY ".$timestamp;

это $title переменная, где возникла проблема. Новая строка должна была быть экранирована, прежде чем содержимое могло быть вставлено обратно в новую строку.

$title      = mysqli_real_escape_string($dbc, trim($row['title']));

Вуаля!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector