RE: [PHP] ODBC text file connection problem
[snip] $odbc = odbc_connect("cvalcoinput","","") OR die("There is an error connecting to the CSV file."); $result = odbc_tables($odbc); while(odbc_fetch_into($result, $fields)){ for ($i = 0; $i < sizeof($fields); $i++) { echo $fields[$i] . ""; } } Derives the following results: D:\INETPUB\CVALCO\INCLUDE\INPUT inputfile.txt TABLE [/snip] I think that you need to have &$fields in your fetch_into statement. Unfortunately I do not know of any good ODBC reference materials when it comes to ODBC. I am sure that you Googled for it and had a look at the manual, so I don't know where to point you now. Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
So this code: $odbc = odbc_connect("cvalcoinput","","") OR die("There is an error connecting to the CSV file."); $result = odbc_tables($odbc); while(odbc_fetch_into($result, $fields)){ for ($i = 0; $i < sizeof($fields); $i++) { echo $fields[$i] . ""; } } Derives the following results: D:\INETPUB\CVALCO\INCLUDE\INPUT inputfile.txt TABLE Which makes sense. Those are the contents of the array returned by odbc_tables. Now try to use odbc_exec and I run into my problems. This article on the microsoft KB seems to suggest under "text driver limitations" that I should be able to run select statements using the odbc_exec command. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q178717 Anyone know of any really good ODBC resources? -Original Message- From: Jay Blanchard [mailto:[EMAIL PROTECTED]] Sent: Tuesday, September 10, 2002 12:29 PM To: Ethan Nelson; [EMAIL PROTECTED] Subject: RE: [PHP] ODBC text file connection problem [snip] // ODBC commands to explore connection: $result = odbc_tables($odbc); odbc_fetch_into($result,$row); print_r($row); [/snip] Have you tried a WHILE loop to print out each row? I am not sure of the exact syntax but something like; \n"); //at end of row } ?> Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
[snip] // ODBC commands to explore connection: $result = odbc_tables($odbc); odbc_fetch_into($result,$row); print_r($row); [/snip] Have you tried a WHILE loop to print out each row? I am not sure of the exact syntax but something like; \n"); //at end of row } ?> Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
I know that the connection works because the following command ODBC_tables into which I feed my connection accurately searches the connection and returns an array with some table information. [snip] // ODBC commands to explore connection: $result = odbc_tables($odbc); odbc_fetch_into($result,$row); print_r($row); // I get the following output to the screen: Array ( [0] => ***:\***\***\*** [1] => [2] => inputfile.txt [3] => TABLE [4] => ) [/snip] inputfile.txt in row 2 is the file I want to select from. Just for kicks, I added the "OR DIE" and got nothing. I'm pretty sure that I have created a valid ODBC system resource and that my ODBC_connect command succesfully creates a bridge to my materials. Its just that I can't execute commands beyond the odbc_tables without getting this big nasty error: [snip] $result = odbc_exec($odbc,"SELECT * FROM inputfile.txt"); [/snip] Warning: SQL error: [Microsoft][ODBC Text Driver] The Microsoft Jet database engine \ cannot open the file '(unknown)'. It is already opened exclusively by another user, \ or you need permission to view its data., SQL state S1000 in SQLExecDirect in \ ***:\***\***\***\basecsv2.html on line 53 -Ethan -Original Message- From: Jay Blanchard [mailto:[EMAIL PROTECTED]] Sent: Tuesday, September 10, 2002 12:03 PM To: Ethan Nelson; [EMAIL PROTECTED] Subject: RE: [PHP] ODBC text file connection problem [snip] As you can see, If I'm going to preserve the double quotes in the third column, I would have to come up with a script that would deal with escaped characters. I was hoping that I could just establish an ODBC connection to the text file, which it appears that I can, and then select stuff from it. Microsoft's documentation that I could find states that their text driver doesn't support create/drop table, insert, or update commands (obviously), but it doesn't mention SELECT as being off limits... [/snip] The quotes should not be a problem as you could use addslashes() to escape them. On your connection you say that it does not return an error; $odbc =3D odbc_connect("***input","",""); // This appears to work as no = errors are reported But you're not testing for errors $odbc =3D odbc_connect("***input","","") OR die("There is an error connecting to the CSV file."); Make sure that you trap every potential error. Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
[snip] As you can see, If I'm going to preserve the double quotes in the third column, I would have to come up with a script that would deal with escaped characters. I was hoping that I could just establish an ODBC connection to the text file, which it appears that I can, and then select stuff from it. Microsoft's documentation that I could find states that their text driver doesn't support create/drop table, insert, or update commands (obviously), but it doesn't mention SELECT as being off limits... [/snip] The quotes should not be a problem as you could use addslashes() to escape them. On your connection you say that it does not return an error; $odbc =3D odbc_connect("***input","",""); // This appears to work as no = errors are reported But you're not testing for errors $odbc =3D odbc_connect("***input","","") OR die("There is an error connecting to the CSV file."); Make sure that you trap every potential error. Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
I actually do use fopen to connect to the file and create a table based on the column names I gather from the first line. However, actaully parsing through the file and trying to dynamically create insert statements for each row seems like it would be a regular expression nightmare. I really can't guarantee the format of the csv in any way that is easy to work with... for instance, the first data line might look like this: "2","Ethan Nelson","My favorite quote is ""To hell with them"".","just a test"\r\n As you can see, If I'm going to preserve the double quotes in the third column, I would have to come up with a script that would deal with escaped characters. I was hoping that I could just establish an ODBC connection to the text file, which it appears that I can, and then select stuff from it. Microsoft's documentation that I could find states that their text driver doesn't support create/drop table, insert, or update commands (obviously), but it doesn't mention SELECT as being off limits... -Ethan -Original Message- From: Jay Blanchard [mailto:[EMAIL PROTECTED]] Sent: Tuesday, September 10, 2002 11:48 AM To: Ethan Nelson; [EMAIL PROTECTED] Subject: RE: [PHP] ODBC text file connection problem [snip] I've got one for ya. I've been trying to conenct to a csv text file = (comma delimited, \r\n row separators, and " text qualifiers) using the = odbc_connect command and then run simple select statements through it. = It doesn't work and I'm at a loss for why. [/snip] Why not use fopen()? A CSV file is a plain text file and therefore cannot be treated as a database. The CSV file has no data engine with which to connect to. HTH! Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] ODBC text file connection problem
[snip] I've got one for ya. I've been trying to conenct to a csv text file = (comma delimited, \r\n row separators, and " text qualifiers) using the = odbc_connect command and then run simple select statements through it. = It doesn't work and I'm at a loss for why. [/snip] Why not use fopen()? A CSV file is a plain text file and therefore cannot be treated as a database. The CSV file has no data engine with which to connect to. HTH! Jay * * Texas PHP Developers Conf Spring 2003* * T Bar M Resort & Conference Center* * New Braunfels, Texas * * Contact [EMAIL PROTECTED] * * * * Want to present a paper or workshop? Contact now! * * -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php