저는 데이터베이스 멍청한 놈입니다. PHP 배열의 항목과 MySQL의 내포 된 배열의 항목을 비교하여 어떻게 행을 검색합니까? 편의성 때문에 저렇게 저장되어 있지만, 내가 원하는 것을하기에 더 좋은 방법이 있다면, 나는 모든 귀입니다. 나는 (내가 handwaving이야 어디 * *를 표시하기 위해 사용하는) 이런 식으로 뭔가를 찾고 있어요 : 제가 DB에 항목을 저장하고 어떻게쿼리에서 PHP 배열에 MySQL 내포 된 배열을 일치 시키십시오.
다음$sql = "SELECT * FROM codeunits";
$sql .= " WHERE CASE WHEN private=1 THEN creatorID=:userID ELSE true END";
if (isset($tags))
{
$tag_ids = join(',',$tags);
$sql .= " AND ****items in mysql array 'tags' IN :tags";
if($stmt = $this->_db->prepare($sql)) {
$stmt->bindParam(":userID", $userID, PDO::PARAM_STR);
$stmt->bindParam(":tags", $tag_ids, PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
}
}
입니다. $ values는 태그 열에 대한 쿼리에 바인딩되므로, 왜 나는 그것을 MySQL 배열이라고 부릅니다.
$tags = array();
foreach ($_POST['tags'] as $selectedOption)
{
$tags[] = $selectedOption;
}
$values = implode(",",array_values($tags));
$sql = "INSERT INTO "
."codeunits(tags)"
." VALUES(:tags)";
if($stmt = $this->_db->prepare($sql)) {
$stmt->bindParam(":tags", $values, PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
return true;
}
이렇게하면 내 데이터베이스에 'tag1, tag2, tag3'과 같은 항목이 생성됩니다. 아주 간단한 문자열.
MySQL은 배열이없는 진정한 – ITroubs
을 :
대신 당신은 테이블 "태그"다음은 문 "의"에 가입 사용할 수 있습니다, 한 줄에 하나의 태그를 들고 있어야한다 내가 의미하는 바를 분명히했습니다. 나는 하나의 문자열로 함몰시킨 PHP 배열을 사용하고있다. 배열과 비교하기를 원하는 문자열입니다. – jakev
실제로 우리에게 $ 값이 있습니까? – ITroubs