记录这个PHP代码的最佳方法是什么?

时间:2009-07-14 11:21:02

标签: php documentation

您能告诉我该功能的作用以及如何使用评论来记录以下功能:

function tosql($value, $value_type, $is_delimiters = true, $use_null = true) 
    {
        if (is_array($value) || strlen($value)) {
            switch ($value_type) {
                case NUMBER:
                case FLOAT:
                    return preg_replace(array("/,/", "/[^0-9\.,\-]/"), array(".", ""), $value);
                    break;
                case DATETIME:
                    if (!is_array($value) && is_int($value)) { $value = va_time($value); }
                    if (is_array($value)) { $value = va_date($this->DatetimeMask, $value); } 
                    else { return "NULL"; }
                    break;
                case INTEGER:
                    return intval($value);
                    break;
                case DATE:
                    if (!is_array($value) && is_int($value)) { $value = va_time($value); }
                    if (is_array($value)) { $value = va_date($this->DateMask, $value); }
                    else { return "NULL"; }
                    break;
                case TIME:
                    if (!is_array($value) && is_int($value)) { $value = va_time($value); }
                    if (is_array($value)) { $value = va_date($this->TimeMask, $value); }
                    else { return "NULL"; }
                    break;
                case TIMESTAMP:
                    if (!is_array($value) && is_int($value)) { $value = va_time($value); }
                    if (is_array($value)) { $value = va_date($this->TimestampMask, $value); }
                    else { return "NULL"; }
                    break;
                case NUMBERS_LIST:
                case FLOATS_LIST:
                    $values = (is_array($value)) ? $value : explode(",", $value);
                    for ($v = 0; $v < sizeof($values); $v++) {
                        $value = $values[$v];
                        $value = preg_replace(array("/,/", "/[^0-9\.,\-]/"), array(".", ""), $value);
                        if (!is_numeric($value)) {
                            $value = 0;
                        }
                        $values[$v] = $value;
                    }
                    return implode(",", $values);
                    break;
                case INTEGERS_LIST:
                    $values = (is_array($value)) ? $value : explode(",", $value);
                    for ($v = 0; $v < sizeof($values); $v++) {
                        $values[$v] = intval($values[$v]);
                    }
                    return implode(",", $values);
                    break;
                default:
                    $value = addslashes($value);
                    break;
            }
            if ($is_delimiters) {
                $value = "'" . $value . "'";
            }
        } elseif ($use_null) {
            $value = "NULL";
        } else {
            if ($value_type == INTEGER || $value_type == FLOAT || $value_type == NUMBER 
                || $value_type == NUMBERS_LIST || $value_type == FLOATS_LIST || $value_type == INTEGERS_LIST) {
                $value = 0;
            } elseif ($is_delimiters) {
                $value = "''";
            }
        } 
        return $value;
    }

3 个答案:

答案 0 :(得分:2)

使用PHPDocumentor

/**
 * tosql
 * Converts a string to a valid sql string
 * @param string
 * @param string
 * @return string
*/
function tosql($value, $value_type, $is_delimiters = true, $use_null = true) 
{
}

答案 1 :(得分:1)

快速给它快速一次它似乎是一个安全地将给定值转换为可以在SQL命令中使用的字符串的函数。如果它无法转换它,那么它会给出一个合适的安全值'NULL',以免破坏代码。

usage: tosql( mydate, 'DATE' )

建议您在评论中剪切并粘贴代码上方的内容......

答案 2 :(得分:0)

它需要一个值和一个常量来表示值的类型,并将其转换为SQL语句中可接受的值。它还支持某些类型的数组(DATETIMEDATETIMETIMESTAMPLIST类型。当$is_delimiters为真时,它会用单引号括起项目(对于插入值和需要它们的比较标记)。如果指定了$use_null,则会提供NULL令牌。

如何评论代码是一个意见,宗教问题,以及你关心下一个必须使用你的代码的雅虎。