скопировать содержимое текстового файла и вставить в таблицу базы данных, где заданный столбец равен заголовку текстового файла

У меня есть папка с текстовыми файлами. текстовые файлы были созданы, когда пользователь отправлял данные формы, и были названы на основе пользовательского ввода определенного столбца. Я хотел бы использовать это содержимое файла для обновления одной таблицы в базе данных, используя предложение where с двумя условиями, во-первых, где электронная почта пользователя соответствуют email столбец в таблице и второй, где заголовок файла соответствует title столбец в таблице. Для каждой строки я бы хотел, чтобы содержимое файла, которому соответствует его заголовок, сохранялось в seen колонка.

Я использую приведенный ниже код, но он не работает

$size = "";

$dir = "counters/ads";

if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file == '.' || $file == '..') continue;

$myFile = "$dir/$file";
$fh = fopen($myFile, 'r');

$size = filesize($myFile);
if ($size > 0) {
$content = fread($fh, $size);

$name = $file;

}
$target = $row2['target'];
$progress = ($content/$target)*100;
// Check connection
$result3=mysqli_query($db_handle,"UPDATE advert SET seen='$content', progress='$progress', counter='$name' WHERE email='".$email."' && title='".$title."'");fclose($fh);
}
closedir($handle);
}

Однако, когда я удалил заголовок, где условие, запрос обновляет таблицу, вставив $name в counter колонка, но она не обновляется $content в seen колонка

Пожалуйста, любая идея о том, как я могу это сделать

0

Решение

Проблема с вашим кодом — точка с запятой перед WHERE пункт:

counter='$name';

Это завершает процесс. Вы должны удалить это.

Так как точка с запятой является абсолютно правильным символом в PHP, она не выдала бы ошибку для него.

Это то, что называется персонажем «конец утверждения».

Ссылка:

Как и в C или Perl, PHP требует, чтобы инструкции заканчивались точкой с запятой в конце каждого оператора. Закрывающий тег блока кода PHP автоматически подразумевает точку с запятой; вам не нужно иметь точку с запятой терминатор последняя строка блока PHP. Закрывающий тег для блока будет включать в себя немедленно завершающий символ новой строки, если он есть. «

Также лучше проверять ошибки, используя отчеты об ошибках PHP и mysqli_error() на запрос, на всякий случай.

Рекомендации:

2

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

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

По вопросам рекламы [email protected]