Natively Connect to FedEx Data in PHP

The CData ODBC driver for FedEx enables you to create PHP applications with connectivity to FedEx data. Leverage the native support for ODBC in PHP.

Drop the CData ODBC Driver for FedEx into your LAMP or WAMP stack to build FedEx-connected Web applications. This article shows how to use PHP's ODBC built-in functions to connect to FedEx data, execute queries, and output the results.

Configure a DSN

If you have not already, first specify connection properties in an ODBC DSN (data source name). This is the last step of the driver installation. You can use the Microsoft ODBC Data Source Administrator to create and configure ODBC DSNs.

There are five pieces of information needed in order to authenticate its actions with the FedEx service. This information is below.

  • Server: This controls the URL where the requests should be sent. Common testing options for this are: "https://gatewaybeta.fedex.com:443/xml", "https://wsbeta.fedex.com:443/xml", "https://gatewaybeta.fedex.com:443/web-service", and "https://wsbeta.fedex.com:443/web-service"
  • DeveloperKey: This is the identifier part of the authentication key for the sender's identity. This value will be provided to you by FedEx after registration.
  • Password: This is the secret part of the authentication key for the sender's identity. This value will be provided to you by FedEx after registration.
  • AccountNumber: This valid 9-digit FedEx account number is used for logging into the FedEx server.
  • MeterNumber: This value is used for submitting requests to FedEx. This value will be provided to you by FedEx after registration.
  • PrintLabelLocation: This property is required if one intends to use the GenerateLabels or GenerateReturnLabels stored procedures. This should be set to the folder location where generated labels should be stored.

The Cache Database

Many of the useful tasks available from FedEx require a lot of data. To ensure this data is easy to input and recall later, utilizes a cache database to make these requests. You must set the cache connection properties:

  • CacheProvider: The specific database you are using to cache with. For example, org.sqlite.JDBC.
  • CacheConnection: The connection string to be passed to the cache provider. For example, jdbc:sqlite:C:\users\username\documents\fedexcache.db

Establish a Connection

Open the connection to FedEx by calling the odbc_connect or odbc_pconnect methods. To close connections, use odbc_close or odbc_close_all.

$conn = odbc_connect("CData ODBC FedEx Source","user","password");

Connections opened with odbc_connect are closed when the script ends. Connections opened with the odbc_pconnect method are still open after the script ends. This enables other scripts to share that connection when they connect with the same credentials. By sharing connections among your scripts, you can save system resources, and queries execute faster.

$conn = odbc_pconnect("CData ODBC FedEx Source","user","password"); ... odbc_close($conn); //persistent connection must be closed explicitly

Create Prepared Statements

Create prepared statements and parameterized queries with the odbc_prepare function.

$query = odbc_prepare($conn, "SELECT * FROM Senders WHERE SenderID = ?");

Execute Queries

Execute prepared statements with odbc_execute.

$conn = odbc_connect("CData ODBC FedEx Source","user","password"); $query = odbc_prepare($conn, "SELECT * FROM Senders WHERE SenderID = ?"); $success = odbc_execute($query, array('ab26f704-5edf-4a9f-9e4c-25'));

Execute nonparameterized queries with odbc_exec.

$conn = odbc_connect("CData ODBC FedEx Source","user","password"); $query = odbc_exec($conn, "SELECT FirstName, Phone FROM Senders WHERE SenderID = ab26f704-5edf-4a9f-9e4c-25");

Process Results

Access a row in the result set as an array with the odbc_fetch_array function.

$conn = odbc_connect("CData ODBC FedEx data Source","user","password"); $query = odbc_exec($conn, "SELECT FirstName, Phone FROM Senders WHERE SenderID = ab26f704-5edf-4a9f-9e4c-25"); while($row = odbc_fetch_array($query)){ echo $row["FirstName"] . "\n"; }

Display the result set in an HTML table with the odbc_result_all function.

$conn = odbc_connect("CData ODBC FedEx data Source","user","password"); $query = odbc_prepare($conn, "SELECT * FROM Senders WHERE SenderID = ?"); $success = odbc_execute($query, array('ab26f704-5edf-4a9f-9e4c-25')); if($success) odbc_result_all($query);

More Example Queries

You will find complete information on the driver's supported SQL in the help documentation. The code examples above are FedEx-specific adaptations of the PHP community documentation for all ODBC functions.