(これは私の最初の投稿です) MySQLデータベースに "データセット"を入力するためのPHPスクリプトを書いています。 私はデータを入力する前に、 "データセット"が既にデータベースに入っているかどうか確認したいと思います。PHP MYSQL重複エントリを確認する
私の問題:これはいくつかのデータセットでしか動作しません。(はい、大文字と小文字を忘れていないと確信しています) ここにスクリプトがあります(あなたはドイツのコメントは必要ありません...) :
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>Playlist</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript">
setTimeout("self.location.href='index.php'",6000);
</script>
</head>
<body>
<div id="enterbody">
<?php
include ('conf.php');
mysql_select_db("$datenbank");
//Zeit
$date = date("d-m-Y");
//Post 2 var
$inp = $_POST["inp"];
$titel = $_POST["titel"];
$link = $_POST["link"];
//Länge der Strings
$l_inp = strlen($inp);
$l_titel = strlen($titel);
$l_link = strlen($link);
//eingabestrings in kleine zeichen umwandeln
$s_inp = strtolower($inp);
$s_titel = strtolower($titel);
//datenbankstrings in kleine zeichen umwandeln
//Ausgabe
echo "Länge des Interpreten: $l_inp (max: 50)</br>";
echo "Länge des Titels: $l_titel (max: 50)</br>";
echo "Länge des Links: $l_link (max: 42)</br>";
if ($inp == "" or $titel == "")
{
echo "Bitte fülle die notwendigen Felder aus!";
}
else
{
if ($l_inp > 50 or $l_titel > 50 or $l_link > 42)
{
echo "Der Interpret/Titel/Link ist zu Lange, deshalb wurde er nicht in die Datenbank eingetragen!";
}
else
{
//stringkonvertierung nicht vergessen
$inp_einlesen = mysql_query("SELECT inp FROM $tabelle WHERE inp='$inp'");
$titel_einlesen = mysql_query("SELECT titel FROM $tabelle WHERE titel='$titel'");
if (mysql_num_rows($inp_einlesen) == 1 and mysql_num_rows($titel_einlesen) == 1)
{
echo "<b>$inp</b> mit dem Track <b>$titel</b> ist schon in der Datenbank vorhanden, deshalb wird der Datensatz nicht eingetragen";
}
else
{
$entry = "INSERT INTO playlist (inp, titel, link, date) VALUES('$inp','$titel','$link', NOW())";
$enter_data = mysql_query($entry);
if ($enter_data == true)
{
echo "Deine Daten wurden gespeichert! Weiterleitung...";
}
else
{
echo "Fehler beim Eintragen der Daten...";
}
}
}
}
mysql_close($connection);
?>
</div>
</body>
</html>
注意:未定義の変数:inp、titel、link。 XSSとSQLインジェクション.... –
ちょっとしたことに、OR文を使って2つのクエリの内容を結合することができます: 'SELECT inp FROM $ tabelle where inp = '$ inp' OR titel = '$ titel'' – hovmand