Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

PHP 

[NEW ALTERNATIVE DATABASE SYSTEM] PHD: Hypertext Database v7.5

INTRODUCTION

PHD is a flat-file database system written as an alternative to systems that run off of SQL written purely in PHP. PHD is very simple and clean to use and implement into your projects written with with stability, scalability, and speed in mind. With it there's no need for external drivers or a separate SQL interpreter.

GET PHD

Website: http://nosql.ga/
Documentation: http://nosql.ga/documentation.php

GITHUB: https://github.com/derp-all-day/PHP-PHD/

FURTHER INFORMATION

For questions, comments, and critiques please post them in the thread here or feel free to pm me.

V7.5 UPDATE LOG

###### New Features ######
[X] node.php returns 'failure' on failure to authenticate
[X] 'table()' doesn't require an argument for the case of 'ls()'
[X] can validate a node url by calling 'http://site.com/node.php?validate' and it should return 'valid'.
[X] now class settings contain a blacklist you can add table names to that should not be accessible via remote connection

###### Bug Fixes ######
[X] Improved security of remote connections 'node'
[X] Fixed bug where 'rand()' didn't return the row id at all
[X] Fixed vulnerability where private functions are accessible via remote connections
[X] Fixed bug where you cant create new tables/rows. array()'s now need to be encased in quotes for remote queries.

###### New Functions ######
[X] changePassword()
[X] schema()
(Jan 30, 2015 01:44 PM)Angel Beats‌‌ Wrote:  What exactly is the difference between nosql and modnosql

ModNoSQL allows function chaining support and NoSQL does not.
(Jan 30, 2015 02:11 PM)La Manifesto Wrote:  Can you show benchmarks compared with NoSQL databases too? Preferably MongoDB.

There are some benchmarks on the bottom of the home page of the website with MySQL. More to come tho don't worry.
(Jan 30, 2015 03:03 PM)Angel Beats‌‌ Wrote:  Try a larger benchmark then just a couple rows.

I will. Working on benchmarks right now.
(Jan 31, 2015 01:31 PM)JavaProphet Wrote:  Unless your doing a lot of memory caching, I could see file IO speeds becoming an issue, just simply due to the delay.

What delay? And no not yet I plan on implementing memory catching in the future tho.
(Jan 31, 2015 03:13 PM)kitnkiller Wrote:  I like the idea, but this will probably not fit most projects.
- It doesn't offer indexing.
- It doesn't stores stuff in the RAM memory, which means it has to read/write everything each time again.
- It misses many functions like JOINs, unions, groups, ect...

It probably fits most easy and small projects, like a simple news system. Cool project

THese are actually some of the things I'm working into it right now. slightly redesigning it but I think it's turning out quite nicely.
(Feb 6, 2015 10:27 PM)Xerotic Wrote:  I can't help but wonder what happens when the database size becomes larger. Have you worked with a 30GB+ database with your project?

I've worked with a 15gb+ db with it to test speeds and it worked fairly well, still have a few plans for it to speed things up tho.
(Feb 7, 2015 03:37 AM)ASDA Wrote:  Awful, I'm assuming. I'm pretty sure it's a key:value store, whereas SQLite is RDBMS, not sure why anybody would use this over SQLite in any situation.

Also, I'm pretty sure using a NUL terminator will allow LFI. Lets say you do something like this:

PHP Code

<?php 
$shopName 
= someArbitraryEscapeFunction($_GET['shopName']);
get_where("{$shopName}_shop", "itemId", "1"); 

what happens if I pass in:

I'll give you a clue:

It's All stored in JSON Arrays not '$ksy:$val'?

Here's an example of a small table:
Code
{"file":{"rows":{"0s":"NoSQL-v5.zip","1s":"ModNoSQL-v5.zip"},"type":"string","name":"file"},"times":{"rows":{"0":"3i","1":"4i"},"type":"int","name":"times"}}
Just realease a huge update.

CHANGELOG
------

###### New Features ######
[X] Stores data in ram.
[X] Can remotely connect to database.

###### Bug Fixes ######
[X] Fixed bug with 'get()' always returning the id when used with find

###### New Functions ######
[X] remote()
[X] checkRemotePrivs()
[X] remoteConnectionEnabled()
[X] nullFunction()
[X] nodeInit()
[X] settings()


(Feb 7, 2015 11:09 AM)Viviparous Wrote:  Although I would never use this Database System, you must not have any knowledge of key-value stores. NoSQL databases offer speeds faster than Relational Databases, the only major difference is, well, relationships between tables.

Yeah the speeds are much faster for the most part.
(Feb 16, 2015 11:29 PM)Yani Wrote:  Could you share the code you used for your benchmarks?

I will be re-creating new benchmarks here soon as there have been a ton of changes to the system. However at the moment I am developing a forum for it (powered by PHD). When I finish that I will hit you up on skype with the new benchmarks (we are both part of the programming chat I believe).
(Feb 19, 2015 02:02 AM)Mongrel Wrote:  This really needs a Github so we can contribute.

I have one, I just need to update the source on it. I'll update it and post it in the OP, just a sec.

https://github.com/derp-all-day/PHP-PHD/
Just came out with a large-ish update. Now has the abillity to dump tables 'dump()' into runable PHD code to recreate them and there rows, along with a few other odd functions aswell as some internal changes.
Huge update.

###### New Features ######
[X] node.php returns 'failure' on failure to authenticate
[X] 'table()' doesn't require an argument for the case of 'ls()'
[X] can validate a node url by calling 'http://site.com/node.php?validate' and it should return 'valid'.
[X] now class settings contain a blacklist you can add table names to that should not be accessible via remote connection

###### Bug Fixes ######
[X] Improved security of remote connections 'node'
[X] Fixed bug where 'rand()' didn't return the row id at all
[X] Fixed vulnerability where private functions are accessible via remote connections
[X] Fixed bug where you cant create new tables/rows. array()'s now need to be encased in quotes for remote queries.

###### New Functions ######
[X] changePassword()
[X] changed 'ls()' to 'schema()'
(Mar 7, 2015 01:37 PM)Sommmen Wrote:  " // Lop threw each row in array aprint out a list and
// print out a list of the usernames "

lots and lots and lots and shittons of spelling and grammar errors.
but the code is beatifull so you got that going for you. i gues that's nice.

Thanks for pointing that out. I'll be sure to go back and fix grammar.
I like the concept not the execution. Next time you do systems programming use a language like C