는이 코드 (제거 PARAM 그냥 몇 가지 코드를 줄이기 위해 탈출)이 있습니다PHP MySQL이 코드를 구성하는 방법?
private function _get_tag_id($value)
{
$sql = "INSERT INTO tags (tag, added) VALUES ('$value', ".time().") "
. "ON DUPLICATE KEY UPDATE tag_id = tag_id";
$id = execute($sql);
if (empty($id))
{
$sql = "SELECT tag_id FROM tags WHERE tag = '$value'";
$id = execute($sql);
}
return $id;
}
내 코드를 조직에서 정말 나쁜이야을하고 난 당신의 코드 DRY 유지의 중요성에 대해 읽어 봤는데. 이 쿼리에 포함 된 쿼리가 포함되어 있습니까? 예를 들어, 나는 몇 가지 필드에이 같은 쿼리를 수행해야하고, 제가했던 것은이로 변경됩니다
private function _get_field_id($field, $value)
{
$sql = "INSERT INTO {$field}s ({$field}, added) VALUES ('$value', ".time().") "
. "ON DUPLICATE KEY UPDATE {$field}_id = {$field}_id";
$id = execute($sql);
if (empty($id))
{
$sql = "SELECT {$field}_id FROM {$field}s WHERE {$field} = '$value'";
$id = execute($sql);
}
return $id;
}
그 일부 유사한 기능을 줄일 수 있지만, 그것은 또한 읽기 쿼리가 더 힘들어합니다 처음에. 이 작업을 수행 한 후에 또 다른 문제는 필드에 대해 쿼리가 약간 다를 수있는 경우에 발생합니다. '이 추가 더러워지기 시작이야 이제
$sql = "INSERT INTO {$field}s ({$field}".($field == 'tag' ? '' : ", added").") "
. "VALUES ('$value', ".($field == 'tag' ? '' : time()).") "
. "ON DUPLICATE KEY UPDATE {$field}_id = {$field}_id";
,하지만 난 느낌 사람들이 돈이 : 나는 더 이상하고 어쩌면 쿼리는 이제 바꿀 것 추가 된 열을 필요가 없습니다, 필드가 태그 인 경우의가 있다고 가정 해 봅시다 실제로 그렇게하지 않습니다.
내가 읽은 또 다른 사항은 함수가 한 가지만 수행해야한다는 것입니다. 그래서 나는 이처럼이 함수를자를까요?
private function _get_tag_id($value)
{
$id = $this->_add_tag_id($value);
if (empty($id))
{
$id = $this->_get_tag_id($value);
}
return $id;
}
아니면 이전 상태로 남겨 두는 것이 좋을까요?
코드 구성을 시도한 방법 중 하나라도 잘못되었다고 생각되는 경우 올바른 방법을 제안하거나 다른 방법으로 이러한 간단한 코드를 구성하는 것이 가장 좋습니다. 약간의 코드?
내 질문에 주로 쿼리 코드를 복제해야하는지 물어 보았지만 답변을 주셔서 감사합니다. 또한 더 작은 함수로 함수를 분해해야하는 경우에도 마찬가지입니다. 귀하의 제안에 대해, 나는 그것이 문제가 될 것이라고 생각하지 않도록 내가 MySQL에서 벗어날 것이라고 생각하지 않는다. 나는 번호 1을 사용하는 것을 고려할 것이다. – Joker