나는 그 사이에 공백이있는 태그 이름을 사용하는 입력을 가지고있다. 그런 다음 배열로 분해하고 태그 당 한 번 배열을 반복합니다. 태그가 없으면 내 태그 테이블에 추가하고 다시 coupon_tags 테이블에 추가합니다. 존재하는 경우, coupon_tags 테이블 만. 한 번에 하나의 태그를 처리 할 때 내 코드가 작동했지만 다중 태그 처리를 사용하면 코드가 손상되었습니다. 태그의 존재 여부와 상관없이, 내 코드는 항상 존재한다고 말하고, 이는 태그를 포함하는 행의 양에 대해 0이 아닌 결과를 보게된다는 것을 의미합니다.MySQL 테이블에서 문자열 존재 여부 확인
아마 내가 가지고있는 tagName을 포함하는 모든 행을 선택한 다음 행의 수가 1인지 0인지를보기보다는 MySQL 테이블에서 무언가가 존재하는지 테스트하는 쉬운 방법이 있습니다.)?
$splitTags = explode(" ", $tag);
foreach($splitTags as $i){
echo $splitTags[$i] . "<br/>";
$resTags = mysql_num_rows(mysql_query("SELECT * FROM tags WHERE tagName = '$splitTags[$i]'"));
//if tag doesn't already exist, create it. either way, append this coupon's id to the list id's related to this tag and add a space
if($resTags > 0)
{
$tagQueRes = mysql_query("SELECT tagID FROM tags WHERE tagName = '$splitTags[$i]'");
$row = mysql_fetch_assoc($tagQueRes);
$tagID = $row["tagID"];
echo "Tag Exists" . "<br/>";
}
else
{
$tagID = mysql_num_rows(mysql_query("SELECT * FROM tags")) + 1;
mysql_query("INSERT INTO tags (tagName, tagID) VALUES ('$splitTags[$i]','$tagID')");
echo "New Tag Added" . "<br/>";
}
mysql_query("INSERT INTO coupon_tags (tagID, couponID) VALUES ('$tagID', '$newID')");
}
당신은 순간에 SQL 인젝션에 취약있어에 발생하기 쉬운 수 있습니다. 그냥 참고하시기 바랍니다. – clifgriffin