Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID Sign In with Twitter

In this Discussion

Inserting an array of values into database

I have an array of values (not associative) that I'd like to insert to the database. First, I thought that this simple line of code will do this for me:
$this->SQL->Insert('MyTable', $Data);
But it didn't work.

I checked class.mysqldriver.php, function GetInsert and found what I know: when you have an associative array of FieldName => Value pairs, it works like a charm.
Quite a common case when you just have your values to be inserted and you don't want to specify column names like:
INSERT INTO tbl_name VALUES(myvalue1, myvalue2, ... , myvalueX);
I think the function should handle that.

How can I avoid to build an associative array of FieldName => Value pairs?
Please explain.
Tagged:

Best Answer

  • TimTim Lord of Servers vanilla
    Answer ✓
    @Csabbencs This is not how the database layer works, and we don't plan to add additional magic functionality like the type you're asking. That is for the Model or Controller to handle.

    @x00 is correct: you should always build a proper columnname -> value list, at the very least for the sake of clarity.

    That said, you can do that step programmatically, like so:
    $DataFormatted = array();
    $DataLength = sizeof($Data);
    for ($i = 1; $i <= $DataLength; $i++) {<br />
    $DataFormatted["Mycolumn{$i}"] = $Data[$i];
    }

    $this->SQL->Insert("MyTable", $DataFormatted);

Answers

Sign In or Register to comment.