У меня есть папка с текстовыми файлами. текстовые файлы были созданы, когда пользователь отправлял данные формы, и были названы на основе пользовательского ввода определенного столбца. Я хотел бы использовать это содержимое файла для обновления одной таблицы в базе данных, используя предложение 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
колонка
Пожалуйста, любая идея о том, как я могу это сделать
Проблема с вашим кодом — точка с запятой перед WHERE
пункт:
counter='$name';
Это завершает процесс. Вы должны удалить это.
Так как точка с запятой является абсолютно правильным символом в PHP, она не выдала бы ошибку для него.
Это то, что называется персонажем «конец утверждения».
Ссылка:
Как и в C или Perl, PHP требует, чтобы инструкции заканчивались точкой с запятой в конце каждого оператора. Закрывающий тег блока кода PHP автоматически подразумевает точку с запятой; вам не нужно иметь точку с запятой терминатор последняя строка блока PHP. Закрывающий тег для блока будет включать в себя немедленно завершающий символ новой строки, если он есть. «
Также лучше проверять ошибки, используя отчеты об ошибках PHP и mysqli_error()
на запрос, на всякий случай.
Рекомендации:
Других решений пока нет …