Я создаю систему ввода блогов для своего веб-сайта, и если уже есть URL-адрес входа, я хочу, чтобы он создавал тот же URL-адрес плюс di git.
Итак, давайте использовать URL-адрес "test" Например, если URL-тест уже существует, я бы хотел, чтобы он был "test1", если URL-адрес "test1" уже существует, я бы хотел, чтобы он был "test2".
Вот какой я ( не совсем) делаю это сейчас:
Итак, как вы можете видеть, на самом деле это не работает так, как я хочу. Он может только go сформировать "test" в "test1" - как я могу заставить его динамически переименовывать бесконечно?
Edit:
Хорошо, после того, как я получил брови, я переключил все в PDO:
$title = $_POST['title'];
$author = $_POST['author'];
$content = $_POST['content'];
$date = new DateTime('now');
$date = $date->format('Y-m-d');
$domainurl = 'https://test.com/entry.php?';
$maxlength = (75 - strlen($domainurl));
if (strlen($_POST['title']) > $maxlength) {
$url = wordwrap($_POST['title'], $maxlength);
$url = substr($url, 0, strpos($url, "\n"));
$url = strtr(strtolower($url), ' ', '-');
}else{
$url = strtr(strtolower($_POST['title']), ' ', '-');
}
$url = preg_replace('/[^A-Za-z0-9\-]/', '', $url);
try {
$options = [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
\PDO::ATTR_EMULATE_PREPARES => false,
];
$conn = new PDO("mysql:charset=utf8mb4;host=$servername;dbname=$dbname", $username, $password);
$sql = "SELECT count(*) FROM blog WHERE url = ?";
$sql = $conn->prepare($sql);
$sql->execute([$url]);
$rowCount = $sql->fetchColumn();
if ($rowCount >= 1) {
$url = $url . $rowCount;
}
try {
$sql = $conn->prepare("INSERT INTO blog (date, title, url, author, content)
VALUES (:date, :title, :url, :author, :content)");
$sql->bindParam(':date', $date);
$sql->bindParam(':title', $title);
$sql->bindParam(':url', $url);
$sql->bindParam(':author', $author);
$sql->bindParam(':content', $content);
$sql->execute();
$rowCount = $sql->rowCount();
$id = $conn->lastInsertId();
if ($rowCount > 0) {
echo json_encode(array ('type' => 'success', 'message' =>"Blog entry created successfully"));
}else{
echo json_encode(array ('type' => 'danger', 'message' =>"Blog entry <strong>not</strong> created successfully"));
}
}catch(PDOException $e){
echo json_encode(array ('type' => 'danger', 'message'=>$e->getMessage()));
}
}catch(PDOException $e){
echo json_encode(array ('response'=>'error','errorMessage'=>$e->getMessage()));
}
$conn = null;
Еще раз: желаемое поведение, которое я хочу, - это если ввод "test" и "test" уже существует, тогда он переходит в "test1", если "test1" существует в базе данных затем он переименовывается в «test2» и т. д.
Что касается деталей отладки go, в настоящее время он переходит только в «test1», и я не знаю, как получить его в «test2» и и так далее.