Sign in to follow this  
Followers 0
James Gill

Using FMSA as an ODBC Data Source with the PHP PDO class

1 post in this topic

I am attempting to use Filemaker as an ODBC datasource in place of MySQL. I am currently running PHP 5.5.3 and am attempting to create a PDO that will utilize the Filemaker ODBC connection. However, I am unable to successfully connect to the database as I am getting an error that says "Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /Applications/MAMP/htdocs/OMIS/core/init.php:6 Stack trace: #0 /Applications/MAMP/htdocs/OMIS/core/init.php(6): PDO->__construct('odbcbiggrin.pngriver={Fi...', 'odbc', 'odbc') #1 {main} thrown in/Applications/MAMP/htdocs/OMIS/core/init.php on line 6"

I know that the both the Filemaker ODBC Driver and the DSN for the database exist but I'm still getting the error. The code I'm using to temporarily test the connection is:
 

PHP Code:
$dsn 'odbc:Driver={FileMaker ODBC};Server=localhost;Database=cwp_data;';
$pdo = new PDO($dsn"odbc""odbc");  

I do have some questions. First, does the 'Server' param need to be where the DSN is configured (localhost in this case) or where the database is hosted (external server). Second, is the PDO being handled correctly here? I am unable to find any resources on using a Filemaker database with the PDO class, so I'm sort of winging it here.  I'm still researching the topic so it's entirely possible that I've missed something.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • By GisMo
      I have a php script that takes two PDF files and merges them into one file. I am using this in conjunction with the insert from URL script step. 
      The way the script works is it takes two PDFs in container fields and base64encode each files. Then, those two base 64 strings are POSTed via insert from URL.
      I've tested the script forwards and backwards and it does combine the PDF files reliably. The issue is when posting from FileMaker. What typically happens is the first page is combined twice and that's my resultant PDF. 
      My php script checks that both inputs are different and throws an error is they are identical. I don't get any errors there.
      Is there a way to POST a file from insert from URL?
    • By Jason Mundok
      I have a website that is displaying FileMaker data using the PHP API. Is there a way for the web site to display the basic text formatting from a FileMaker field? For example, a few words in the comments field are bold in FileMaker and I would like them to also be bold on the website. Thanks for any ideas.
    • By randyinla
      Hi, I have a field called 'mytournament1'.  I also have a field called 'mytournament1played'.  With a form, I create the variable $tournament to bring 'mytournament1' to my results page.
      $tournament = $_GET['tournament'];
      I'd like to force the results page to search for the field 'mytournament1played' for each record by using the variable $tournament and combining the word 'played' or the variable $played.  
      $played = 'played';
      $tournamentplayed = $tournament . $played;
      $tournamentplayed2 = $record->getField('$tournamentplayed');
      (I want it to deliver)      $record->getField('mytournament1played');

      I know the 1st '$record->getField' line is wrong.  Can I combine 2 variables that spell out a database field name (mytournament1played) that can be used to call up a field in a search?  i.e.
      if ($tournamentplayed2!='1') {

      thanks in advance for your help!
       
    • By sal88
      Hi all
      We have a web based tickets portal which creates new messages in our filemaker database - this is for customers' use. It does this using the PHP API (the website was developed by a third party). We would like the owners of tickets to be notified when the customer has added a message to one of the tickets that they are in charge of.
      Is there a way for filemaker/filemaker server to trigger a 'send email' script when a new record is created via the web portal? Or would it be simpler for this action to occur on the web side?
      Many thanks
    • By bwalsh
      Hi, I am relatively new to FileMaker. I am a PHP developer currently working on a project that involves the FMS custom web publishing PHP API. I was able to successfully connect using the API, but the connection is no longer working. The error message says only "Unable to open file". My research says that this could be due to the database file not being open, or to a permissions issue.

      I can see in the FMS admin console that the database file is open, with "normal" status. The FMWEBDIRECT and PHP columns both have full circles, indicating that the database should be accessible through the PHP API. Both the web server and the web publishing engine are on, with green checks, and PHP is activated.

      I am using the same username and password that worked previously. I checked again in the database security settings and confirmed that the username and password are still correct and that the user account has the "fmphp" privelege. What else should I look for?
      In the web publishing error log I see entries that say:
       
      127.0.0.1:63876 [USERNAME] - 802 563 "fmi/sml/fmresultset.xml?-db=[DB]&-lay=[LAYOUT]&-findany" Does the PHP API use the XML API? Also, here is the full var_dump() of the error object:

       
      object(FileMaker_Error)#6 (9) { ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["error_message_prefix"]=> string(0) "" ["mode"]=> int(1) ["level"]=> int(1024) ["code"]=> string(3) "802" ["message"]=> NULL ["userinfo"]=> NULL ["backtrace"]=> array(7) { [0]=> array(6) { ["file"]=> string(90) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/PEAR.php" ["line"]=> int(945) ["function"]=> string(11) "__construct" ["class"]=> string(10) "PEAR_Error" ["type"]=> string(2) "->" ["args"]=> array(5) { [0]=> NULL [1]=> string(3) "802" [2]=> NULL [3]=> NULL [4]=> NULL } } [1]=> array(7) { ["file"]=> string(101) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Error.php" ["line"]=> int(52) ["function"]=> string(10) "PEAR_Error" ["class"]=> string(10) "PEAR_Error" ["object"]=> *RECURSION* ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> NULL [1]=> string(3) "802" } } [2]=> array(7) { ["file"]=> string(129) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/Parser/FMResultSet.php" ["line"]=> int(48) ["function"]=> string(15) "FileMaker_Error" ["class"]=> string(15) "FileMaker_Error" ["object"]=> *RECURSION* ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } [1]=> NULL [2]=> string(3) "802" } } [3]=> array(7) { ["file"]=> string(122) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/CommandImpl.php" ["line"]=> int(84) ["function"]=> string(5) "parse" ["class"]=> string(28) "FileMaker_Parser_FMResultSet" ["object"]=> object(FileMaker_Parser_FMResultSet)#5 (17) { ["Vcb5e100e"]=> string(3) "802" ["Vf5bf48aa"]=> array(3) { ["build"]=> string(10) "10/27/2016" ["name"]=> string(31) "FileMaker Web Publishing Engine" ["version"]=> string(10) "15.0.3.308" } ["V1ea7e575"]=> array(7) { ["database"]=> string(0) "" ["date-format"]=> string(0) "" ["layout"]=> string(0) "" ["table"]=> string(0) "" ["time-format"]=> string(0) "" ["timestamp-format"]=> string(0) "" ["total-count"]=> string(1) "0" } ["V9f81f3c0"]=> array(0) { } ["Vaae0d98d"]=> array(2) { ["count"]=> string(1) "0" ["fetch-size"]=> string(1) "0" } ["Vae581270"]=> array(0) { } ["V6e52c40b"]=> array(0) { } ["Ve13f1c92"]=> NULL ["V43432a31"]=> NULL ["V51bc3e3b"]=> NULL ["V26005321"]=> NULL ["V6468d939"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["V5431b8d4"]=> resource(28) of type (Unknown) ["V6de51026"]=> bool(false) ["_result"]=> NULL ["_layout"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(563) "" } } [4]=> array(7) { ["file"]=> string(130) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/Command/FindAnyImpl.php" ["line"]=> int(17) ["function"]=> string(10) "_getResult" ["class"]=> string(32) "FileMaker_Command_Implementation" ["object"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(563) "" } } [5]=> array(7) { ["file"]=> string(103) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Command.php" ["line"]=> int(137) ["function"]=> string(7) "execute" ["class"]=> string(40) "FileMaker_Command_FindAny_Implementation" ["object"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [6]=> array(7) { ["file"]=> string(64) "/Library/FileMaker Server/HTTPServer/htdocs/newsletter/index.php" ["line"]=> int(32) ["function"]=> string(7) "execute" ["class"]=> string(17) "FileMaker_Command" ["object"]=> object(FileMaker_Command_FindAny)#3 (1) { ["_impl"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } } ["type"]=> string(2) "->" ["args"]=> array(0) { } } } ["callback"]=> NULL } Any help would be much appreciated!