コード例 #1
0
ファイル: SQLite.cs プロジェクト: jiahao42/weverca
        public static PhpArray FetchAll(PhpResource resultIdentifier, object result_type, object decode_binary)
        {
            PhpSQLiteDbResult res = PhpSQLiteDbResult.ValidResult(resultIdentifier);

            if (res == null)
            {
                return(null);
            }
            SQLite.QueryResultKeys resType = QueryResultKeys.Both;
            if (result_type != null)
            {
                int val = PHP.Core.Convert.ObjectToInteger(result_type);
                if (val != 0)
                {
                    resType = (SQLite.QueryResultKeys)val;
                }
            }
            bool intKey = (resType & SQLite.QueryResultKeys.Numbers) == SQLite.QueryResultKeys.Numbers;
            bool strKey = (resType & SQLite.QueryResultKeys.ColumnNames) == SQLite.QueryResultKeys.ColumnNames;

            PhpArray arr  = new PhpArray();
            PhpArray line = null;

            while ((line = res.FetchArray(intKey, strKey)) != null)
            {
                arr.AddToEnd(line);
            }

            if (arr.Count == 0)
            {
                return(null);
            }
            return(arr);
        }
コード例 #2
0
ファイル: SQLiteDatabase.cs プロジェクト: jiahao42/weverca
        public object query(ScriptContext context, object query, object resultType, PhpReference error)
        {
            SQLite.QueryResultKeys rt = SQLite.QueryResultKeys.Both;

            int vRt = PHP.Core.Convert.ObjectToInteger(resultType);

            if (Enum.IsDefined(typeof(SQLite.QueryResultKeys), vRt))
            {
                rt = (SQLite.QueryResultKeys)vRt;
            }

            PhpSQLiteDbResult result = (PhpSQLiteDbResult)SQLite.Query(this.m_con, query, rt, error);

            if (result != null)
            {
                return(new SQLiteResult(result));
            }
            else
            {
                return(null);
            }
        }