Sql problem

William Prothero waprothero at gmail.com
Wed May 24 23:24:03 EDT 2017


Folks:
Thanks for the comments. I bet the linefeeds caused me the problem, since I just took the contents of a text field, put them in an array, and didn’t pay attention to linefeeds.

Now I remember why I didn’t try to directly connect to the dB. The security issue makes it inadvisable to go direct. It would be nice if there was a cautionary statement about that in the dictionary. 

Best,
Bill

> On May 23, 2017, at 6:22 PM, Roger Eller via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> I have always replaced the linefeeds with a unique placeholder for
> transport, and switched it back to linefeeds in the server script.  I
> didn't even consider replacing with empty.
> 
> On May 23, 2017 8:55 PM, "Jonathan Lynch via use-livecode" <
> use-livecode at lists.runrev.com> wrote:
> 
>> One quick note about base64encode:
>> 
>> LC adds linefeeds. After you base64encode, you may need to replace
>> linefeed with empty in the variable.
>> 
>> Sent from my iPhone
>> 
>>> On May 23, 2017, at 8:10 PM, William Prothero via use-livecode <
>> use-livecode at lists.runrev.com> wrote:
>>> 
>>> Andre,
>>> This is good advice. I did it this way as a shortcut for an app I’ve
>> built for myself only. You are right that it makes debugging harder because
>> I can’t use other management applications to examine the contents.
>>> 
>>> For many years now I’ve used php cgi’s to connect to the remote mysql db
>> and it works well. I just haven’t spent the time to set up JSON.
>>> 
>>> But it looks like I could dispense with the php and directly access the
>> mySQL db from my mobile app, without a cgi?
>>> 
>>> Best,
>>> Bill
>>> 
>>>> On May 23, 2017, at 3:30 PM, Andre Garzia via use-livecode <
>> use-livecode at lists.runrev.com> wrote:
>>>> 
>>>> William,
>>>> 
>>>> If I may add a bit of personal opinion here... so, I have been using and
>>>> storing LC stuff in databases for a long time. Not only I have been
>> storing
>>>> arrays in database but I had them flying over TCP sockets and being
>>>> decoded/encoded as needed. For a long time I used the same approach as
>> you,
>>>> which is to arrayEncode + base64 the array.
>>>> 
>>>> I don't do that any longer. That combination is very hard to debug. I
>> would
>>>> advise you simply to use JSON and store it as JSON on the db. Instead of
>>>> encoding the array twice, you do it only once with jsonexport() and then
>>>> when importing, you do it only once with jsonimport()
>>>> 
>>>> Not only that reduces complexity but it also makes it a lot easier to
>>>> debug. As a bonus, your data can be consumed by other applications which
>>>> are not based on LC which may open a whole ecosystem of plugins and
>>>> interoperation to your product.
>>>> 
>>>> Cheers
>>>> andre
>>>> 
>>>> 
>>>> On Sun, May 21, 2017 at 9:45 PM, William Prothero via use-livecode <
>>>> use-livecode at lists.runrev.com> wrote:
>>>> 
>>>>> Never mind. I got it working. I’m not exactly sure about the problem
>>>>> because the method I used should have been quite general. However, what
>>>>> made it work is that I had the contents of a list field in the array I
>> was
>>>>> storing and that somehow caused an error when I tried to decode the
>> array.
>>>>> I deleted that array key, because there was no reason I needed to have
>> it
>>>>> in the db anyway, and it worked.
>>>>> 
>>>>> I’ll look into why and report back if I find anything interesting.
>>>>> Best,
>>>>> Bill
>>>>> 
>>>>>> On May 21, 2017, at 5:23 PM, William Prothero via use-livecode <
>>>>> use-livecode at lists.runrev.com> wrote:
>>>>>> 
>>>>>> Whoops, I lied.
>>>>>> The data is stored incorrectly in the simulator too.
>>>>>> Hmm….
>>>>>> The IDE stores it correctly. There is something in the encoding that
>> I’m
>>>>> missing.
>>>>>> Bill
>>>>>> 
>>>>>>> On May 21, 2017, at 5:03 PM, William Prothero via use-livecode <
>>>>> use-livecode at lists.runrev.com> wrote:
>>>>>>> 
>>>>>>> Folks:
>>>>>>> I have an app that stores data to a mysql database on my server. It
>>>>> works fine in the IDE and in the iPhone simulator. However, when I
>> load the
>>>>> app onto the iPhone, the saved data is corrupted.
>>>>>>> 
>>>>>>> I am saving an array. The array is saved in a big string that has
>> been
>>>>> base64 encoded.
>>>>>>> 
>>>>>>> When saving, I do:
>>>>>>> 
>>>>>>> put arrayEncode(tArray) into tData
>>>>>>> 
>>>>>>> put base64encode(tData) into xData
>>>>>>> 
>>>>>>> put urlEncode(xData) into xData
>>>>>>> 
>>>>>>> xData is sent to the db
>>>>>>> 
>>>>>>> When I read back the data, I do the inverse:
>>>>>>> 
>>>>>>> urlDecode
>>>>>>> base64Decode
>>>>>>> arrayDecode
>>>>>>> 
>>>>>>> The base64 data on the db is different when I store it from the
>> iPhone.
>>>>> I can see this with Navicat, which I use for db management. So, the
>> problem
>>>>> is in the storing of the data.
>>>>>>> 
>>>>>>> What the heck? I am just using a post command to a php script that
>>>>> writes to the db.
>>>>>>> 
>>>>>>> Why would the iPhone data that is sent be different from that sent in
>>>>> the simulator?
>>>>>>> 
>>>>>>> Mac OSX 10.12.4, Livecode 8.1.4 (rc2) and XCode 8.3.
>>>>>>> 
>>>>>>> Any suggestions would be welcome.
>>>>>>> Thanks,
>>>>>>> Bill P.
>>>>>>> 
>>>>>>> William A. Prothero
>>>>>>> http://earthlearningsolution.org/
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> use-livecode mailing list
>>>>>>> use-livecode at lists.runrev.com
>>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>> subscription preferences:
>>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> use-livecode mailing list
>>>>>> use-livecode at lists.runrev.com
>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>> subscription preferences:
>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> use-livecode mailing list
>>>>> use-livecode at lists.runrev.com
>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> http://www.andregarzia.com -- All We Do Is Code.
>>>> http://fon.nu -- minimalist url shortening service.
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> 
>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list