FAQ

Pre-Sales Questions

[toggle title=”What’s DbFacePHP? Why do I need it?”] DbFacePHP for MySQL (DbFacePHP) provides you control and use MySQL databases without coding over the World Wide Web. If you are administrating or use a MySQL database, you may find DbFacePHP make your life easy.
Please notice that: The purchased version does not require any Zend Guard Loader things.
[/toggle] [toggle title=”How to evaluate DbFacePHP?”]Contact with DbFacePHP team with your Email to get a download link fo Demo, or evaluate on our demo site.
[/toggle] [toggle title=”How to evaluate DbFacePHP locally?”]Contact with DbFacePHP team with your Email to get a download link fo Demo, or evaluate on our demo site.
[/toggle] [toggle title=”Why I should buy a DbFacePHP license?”]With DbFacePHP Pro license, You get: Run with or without Zend Optimizer as your pleasure; One-Year FREE Updates; Lifetime free email support; Excellent functionality and much more…[/toggle] [toggle title=”What types of payment do you accept?”]We accept credit card, debit card or paypal payments. Check out here.[/toggle] [toggle title=”How do I get the product, that were ordered by me?”]After the payment received, you will be redirected to a page that you can download the full version. This full version page will be always available for you, you can download the full version at anytime ( for reinstallation etc.).[/toggle]

Customer Support Questions

[toggle title=”Can you help me to install it on my server freely?”]Yes, we can help you to install DbFacePHP on your server freely after the order received.[/toggle] [toggle title=”How do I leave my feedback?”]We appreciate any suggestions, questions and bug reports regarding our software. contact us.[/toggle] [toggle title=”How do I get support on the product?”]We currently only offer electronic support via email. E-mail support questions are answered within 12 hours of their receipt. If you feel you have been waiting for a response longer than necessary, please let us know in writing via e-mail so we can correct the problem.[/toggle] [toggle title=”If I purchase the DbFacePHP Pro, Can you make modifications to it?”]Yes, we have many clients come to us to modify and upgrade their products, but you have to contact us to discuss the details of modifications you need. Click here to buy our Priority Custom Service for DbFacePHP Pro.[/toggle]

DbFacePHP Usage

[toggle title=”Trial Version: The encoded file has format major ID 65540, whereas the Optimizer expects 2″]It happens because DbFacePHP Trial was cryptographed on the new Zend Guard version to PHP 5.3 environments, therefore older Zend Optimizer/Loader versions cannot load DbFacePHP Trial PHP code. In order to make sure that the error will not occur, install DbFacePHP Trial on a PHP 5.3 environment.[/toggle] [toggle title=”What’s the Form?”]As a kind of user interface, form may contains TextField, TextArea, Droplist, Radio and many other fields. Generally speaking, You fill out a form and click the “submit” or “execute” button to get a result set or execute a script. DbFacePHP provides a GUI based builder to help you create a form only doing some mouse clicks.[/toggle] [toggle title=”What’s the dbfacephp application scripts mean?”]DbFacePHP application script is a sql-little-modification language, the only difference between them is that, the script can use “Form variables”. e.g. If a application has a form containing a field named “productCode”, then you can write the script like this:

''SELECT * FROM PRODUCTS WHERE PRODUCTCODE = ${productCode}''

the ${productCode} will be replaced by the form field productCode in runtime. All other SQL syntax(Insert, Update, Delete etc.) are supported too.[/toggle] [toggle title=”How to write a dbfacephp application script?”]Writing a DbFacePHP script is the same as a SQL script. DbFacePHP provides you Query Builder and DML Builder to help you build a querying and DML SQL scripts. You can inserting the form variables to the sql scripts to build a DbFacePHP script. There are four kinds tags that DbFacePHP script supported:

* a. ${formvariable}:
Here is a sample:

” update
products
set
productName = ${productName},
productLine = ${productLine},
productScale = ${productScale},
productVendor = ${productVendor},
quantityInStock = ${quantityInStock},
buyPrice = ${buyPrice},
MSRP = ${MSRP}
where
productCode = ${productCode}”

At runtime, the sql will convert to a prepared statement like following:

” update
products
set
productName = ?,
productLine = ?,
productScale = ?,
productVendor = ?,
quantityInStock = ?,
buyPrice = ?,
MSRP = ?
where
productCode = ?”

* b. @{formvariable}:
Prepared statement not works everytime. Sometimes, you may want just replacing the variables with the submitted data simply, this case you should use @{formvariable} tag. e.g. You want to search the customerName matches user’s input, you may notice that prepared statement not works in this case:

” SELECT
*
FROM
customers
WHERE
customers.customerName like ‘%@{customerName}%”’

If the user input ‘Wheel’ in the customerName field, tmWorks R-View will simply convert the script to following to execute:

” SELECT
*
FROM
customers
WHERE
customers.customerName like ‘%Wheel%”’

* c. #{…${formvariable}…}#:
This tag only works with Checkbox, multiSelect fields.

” SELECT
dbo.Products.ProductName,
dbo.Suppliers.CompanyName AS Supplier,
dbo.Products.UnitPrice,
dbo.Products.QuantityPerUnit,
dbo.Products.UnitsInStock,
dbo.Products.UnitsOnOrder,
dbo.Products.Discontinued
FROM
dbo.Products
INNER JOIN
dbo.Suppliers
ON
(dbo.Products.SupplierID = dbo.Suppliers.SupplierID)
WHERE
#{dbo.Products.CategoryID =${category}}#”

when your submitted data contains more than one category field(e.g.3), then the script above will be converted to following to execute:

……….
” WHERE
dbo.Products.CategoryID =${category1}
AND
dbo.Products.CategoryID =${category2}
AND
dbo.Products.CategoryID =${category3}”

this tag used with the form containing checkbox, multiselect fields usually.

* d. *{…${formvariable}…}*:
This tag only works with Checkbox, multiSelect fields.

SELECT
dbo.Products.ProductName,
dbo.Suppliers.CompanyName AS Supplier,
dbo.Products.UnitPrice,
dbo.Products.QuantityPerUnit,
dbo.Products.UnitsInStock,
dbo.Products.UnitsOnOrder,
dbo.Products.Discontinued
FROM
dbo.Products
INNER JOIN
dbo.Suppliers
ON
(dbo.Products.SupplierID = dbo.Suppliers.SupplierID)
WHERE
*{dbo.Products.CategoryID =${category}}*”

when your submitted data contains more than one category field(e.g.3), then the script above will be converted to following to execute:

……….
WHERE
dbo.Products.CategoryID =${category1}
OR
dbo.Products.CategoryID =${category2}
OR
dbo.Products.CategoryID =${category3}

this tag used with the form containing checkbox, multiselect fields usually.[/toggle] [toggle title=”What’s the dbfacephp application mean?”]A DbFacePHP application usually contains a Form(which you can input something) and a DbFacePHP application scripts(Which affected to your database with your input). There are four kinds application flow that DbFacePHP supported:
[check_list]

  • a. Searching Application: Querying datas from your database with or without parameters.
  • b. Operation Application: Commiting general operation (inserting, updating, etc.) to the database with or without parameters.
  • c. Search for updating: Querying rows from a table for updating.
  • d. Chart report: Querying ruled rows from the database for Charting(Pie, Bar, Line etc.).
[/check_list] [/toggle]

Security Topics

[toggle title=”Is it security in real production environment?”]DbFacePHP does not apply any special security methods to the MySQL database server. It is still the system administrator’s job to grant permissions on the MySQL databases properly.

In most cases, you just want to allow accessing the DbFacePHP service at some ips(at home or at work), in this case, please configure the whitelist. All ip addresses not in the whitelist will be denied to access the service. Please go to the installation directory, and open the application/config/config.php file, and find the following line:

”$config[‘white_list’]=”;”

i.e. Edit it to

$config[‘white_list’]=’192.168.0.1-192.168.0.24;211.157.2.99′;”

you may have known, only 192.168.0.1 ~ 192.168.0.24 and 211.157.2.99 allowed to access the service. [/toggle]