Freshers PHP Technical Interview Questions
Freshers PHP Technical Interview Questions
Question : What are the differences between Get and post methods in form submitting.
Give the case where we can use get and we can use post methods?
Answer : When to use GET or POST
The HTML 2.0 specification says, in section Form Submission (and the HTML 4.0
specification repeats this with minor stylistic changes):
>If the processing of a form is idempotent (i.e. it has no lasting observable effect on the
state of the
world), then the form method should be GET. Many database searches have no visible sideeffects and make ideal applications of query forms.
>If the service associated with the processing of a form has side effects (for example,
modification of a database or subscription to a service), the method should be POST.
How the form data is transmitted?
Firstly, the the HTTP protocol specifies differing usages for the two methods. GET requests
should always be idempotent on the server. This means that whereas one GET request might
(rarely) change some state on the Server, two or more identical requests will have no further
effect.
This is a theoretical point which is also good advice in practice. If a user hits reload on
his/her browser, an identical request will be sent to the server, potentially resulting in two
identical database or guestbook entries, counter increments, etc. Browsers may reload a GET
URL automatically, particularly if cacheing is disabled (as is usually the case with CGI
output), but will typically prompt the user before re-submitting a POST request. This means
youre far less likely to get inadvertently-repeated entries from POST.
GET is (in theory) the preferred method for idempotent operations, such as querying a
database, though it matters little if youre using a form. There is a further practical constraint
that many systems have built-in limits to the length of a GET request they can handle: when
the total size of a request (URL+params) approaches or exceeds 1Kb, you are well-advised to
$message is a simple PHP variable that we are used to. But the $$message is not a very
familiar face. It creates a variable name $mizan with the value is a moderator of
PHPXperts. assigned. break it like this${$message} => $mizanSometimes it is convenient to
be able to have variable variable names. That is, a variable name which can be set and used
dynamically.
Question : How can we extract string hotmail.com from a string
[email protected] using regular expression of PHP?
Answer : preg_match(/^http://.+@(.+)$/,[email protected],$found);
echo $found[1];
Question : How can we create a database using PHP and MySQL?
Answer : We can create MySQL Database with the use of mysql_create_db(Database
Name).
Question : What are the differences between require and include, include_once and
require_once?
Answer :
The include() statement includes and evaluates the specified file.The documentation below
also applies to require(). The two constructs are identical in every way except how they
handle
failure. include() produces a Warning while require() results in a Fatal Error. In other words,
use
require() if you want a missing file to halt processing of the page. include() does not behave
this way, the script will continue regardless. The include_once() statement includes and
evaluates the
specified file during the execution of the script. This is a behavior similar to
the include() statement, with the only difference being that if the code from a file has already
been included, it will not be
included again. As the name suggests, it will be included just once.include_once() should be
used in cases where the same file might be included and evaluated more than once during a
particular execution of a script, and you want to be sure that it is included exactly once to
avoid problems with function redefinitions, variable value reassignments,
etc. require_once()should be used in cases where the same file might be included and
evaluated more than once during a particular execution of a script, and you want to be sure
that it is included exactly once to avoid problems with function
redefinitions, variable value reassignments, etc.
Question : Can we use include (abc.PHP) two times in a PHP page makeit.PHP?
Answer : Yes we can use include() more than one time in any page though it is not a very
good practice.
Question : What are the different tables present in MySQL, which type of table is
generated when we are creating a table in the following syntax:
create table employee (eno int(2),ename varchar(10)) ?
Answer : The Zend Engine is the internal compiler and runtime engine used by PHP4.
Developed by Zeev Suraski and Andi Gutmans, the Zend Engine is an
abbreviation of their names. In the early days of PHP4, it worked as follows:
The PHP script was loaded by the Zend Engine and compiled into Zend opcode. Opcodes,
short for operation codes, are low level binary instructions. Then the opcode was executed
and the HTML generated sent to the client. The opcode was flushed from memory after
execution.Today, there are a multitude of products and techniques to help you speed up this
process. In the following diagram, we show the how modern PHP scripts work; all the shaded
boxes are optional.
PHP Scripts are loaded into memory and compiled into Zend opcodes.
Question : What are the current versions of apache, PHP, and MySQL?
Answer : As of Aug 2008 the current versions are PHP: php5.2.6
MySQL: MySQL 5.1.2
Apache: Apache 2.2.9
Note: visit
http://www.php.net/,
http://dev.mysql.com/downloads/mysql/,
http://www.apache.org/ to get current
versions.
Question : What are the reasons for selecting lamp (Linux, apache, MySQL,
PHP) instead of combination of other software programs, servers and operating
systems?
Answer : All of those are open source resource. Security of Linux is very very more than
windows. Apache is a better server that IIS both in functionality and security. MySQL is
world most popular open source database. PHP is more faster that asp or any other scripting
language.
Question : How can we encrypt and decrypt a data present in a MySQL table using
MySQL?
Decryption
AES_DECRYPT()
DECODE()
DES_DECRYPT()
Not available
Not available
Not available
Not available
Not available
UNCOMPRESSED_LENGTH()
It may contain functionality that manages leap years, determines if it is a business day or a
holiday, etc., See Fig. 1). Ideally, information about a particular thing should reside in only
one place in a system.The information within an object is encapsulated (or hidden) from the
rest of the system. A system is composed of multiple objects (i.e., date function, reports, order
processing, etc., See Fig 2). When one object needs information from another object, a
request is sent asking for specific information. (for example, a report object may need to
know what todays date is and will send a request to the date object) These requests are called
messages and each object has an interface that manages messages. OO programming
languages include features such as class, instance, inheritance, and polymorphism
that increase the power and
flexibility of an object.
Question : What is the use of friend function?
Answer : Sometimes a function is best shared among a number of different classes. Such
functions can be declared either as member functions of one class or as global functions. In
either case they can be set to be friends of other classes, by using a friend specifier in the
class that is admitting them. Such functions can use all attributes of the class which names
them as a friend, as if they were themselves members of that class. A friend declaration is
essentially a prototype for a member function, but instead of requiring an implementation
with the name of that class attached by the double colon syntax, a global function or member
function of another class provides the match.
Question : What are the differences between public, private, protected,static, transient,
final and volatile?
Answer : Public: Public declared items can be accessed everywhere.
Protected: Protected limits access to inherited and parent classes (and to the class that
defines the item).
Private: Private limits visibility only to the class that defines the item.
Static: A static variable exists only in a local function scope, but it does not lose its value
when program execution leaves this scope.
Final: Final keyword prevents child classes from overriding a method by prefixing the
definition with final. If the class itself is being defined final then it cannot be extended.
Transient: A transient variable is a variable that may not be serialized.
Volatile: a variable that might be concurrently modified by multiple threads should be
declared volatile. Variables declared to be volatile will not be optimized by the compiler
because their value can change at any time.
Question : What are the different types of errors in PHP?
Answer : Three are three types of errors:1. Notices: These are trivial, non-critical errors that
PHP encounters while executing a script for example, accessing a variable that has not yet
been defined. By default, such errors are not displayed to the user at all although, as you
will see, you can change this default behavior.2. Warnings: These are more serious errors
for example, attempting to include() a file which does not exist. By default, these errors are
displayed to the user, but they do not result in script termination.3. Fatal errors: These are
critical errors for example,
instantiating an object of a non-existent class, or calling a non-existent function. These errors
cause the immediate termination of the script, and PHPs default behavior is to display them
to the user when they take place.
Question : What is the functionality of the function strstr and stristr?
Answer : strstr:
Returns part of haystack string from the first occurrence of needle to the end of haystack.If
needle is not found, returns FALSE. If needle is not a string, it is converted to an integer and
applied as the ordinal value of a character. This function is case-sensitive. For caseinsensitive searches, use stristr().
Question : What are the differences between PHP 3 and PHP 4 and PHP 5?
Answer : PHP 3 is most procedure oriented and , PHP4 and PHP5 aer object oriented. For
more details
http://php.net/
Question : How can we convert asp pages to PHP pages?
Answer : There are lots of tools available for asp to PHP conversion. you can search Google
for that. the best one is available at http://asp2php.naken.cc/
Question : What is the functionality of the function htmlentities?
Answer : Convert all applicable characters to HTML entities
This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all
characters which have HTML character entity equivalents are translated into these entities.
Question : How can we get second of the current time using date function?
Answer : $second = date(s);
Question : How can we convert the time zones using PHP?
Answer : By using date_default_timezone_get and
date_default_timezone_set function on PHP 5.1.0
<!p// Discover what 8am in Tokyo relates to on the East Coast of the US
// Set the default timezone to Tokyo time:
date_default_timezone_set(Asia/Tokyo);
// Now generate the timestamp for that particular timezone, on Jan 1st, 2000
$stamp = mktime(8, 0, 0, 1, 1, 2000);
// Now set the timezone back to US/Eastern
date_default_timezone_set(US/Eastern);
Question : How can we take a backup of a MySQL table and how can we restore it. ?
Answer : To backup: BACKUP TABLE tbl_name[,tbl_name] TO
/path/to/backup/directory
RESTORE TABLE tbl_name[,tbl_name] FROM /path/to/backup/directorymysqldump:
Dumping Table Structure and DataUtility to dump a database or a collection of database for
backup or for transferring the data to another SQL server (not necessarily a MySQL server).
The dump will contain SQL statements to create the table and/or populate the table. -t, nocreate-info Dont write table creation information (the CREATE TABLE statement). -d, nodata Dont write any row information for the table. This is very useful if you just want to get
a dump of the structure for a table!
Question : How can we optimize or increase the speed of a MySQL select query?
Answer : First of all instead of using select * from table1, use select column1, column2,
column3.. from table1
Look for the opportunity to introduce index in the table you are querying.
use limit keyword if you are looking for any specific number of rows from the result set.
Question : How many ways can we get the value of current session id?
Answer : session_id() returns the session id for the current session.
Question : How can we destroy the session, how can we unset the variable of a session?
Answer : session_unregister Unregister a global variable from the current session
session_unset Free all session variables
Question : How can we destroy the cookie?
Answer : Set the cookie in past.
Question : How many ways we can pass the variable through the navigation between the
pages?
Answer : GET/QueryString
POST
Question : What is the difference between ereg_replace() and eregi_replace()?
Answer : eregi_replace() function is identical to ereg_replace() except that this ignores case
distinction when matching alphabetic characters.eregi_replace() function is identical to
ereg_replace() except that this ignores case distinction when matching alphabetic characters.
Question : What are the different functions in sorting an array?
Answer : Sort(), arsort(),
asort(), ksort(),
natsort(), natcasesort(),
rsort(), usort(),
array_multisort(), and
uksort().
Question : How can we know the count/number of elements of an array?
Answer : 2 ways
a) sizeof($urarray) This function is an alias of count()
b) count($urarray)
Question : What is the PHP predefined variable that tells the What types of
images that PHP supports?
Answer : Though i am not sure if this is wrong or not, With the exif extension you are able to
work with image meta data.
Question : How can I know that a variable is a number or not using a JavaScript?
Answer : bool is_numeric ( mixed var) Returns TRUE if var is a number or a numeric string,
FALSE otherwise.or use isNaN(mixed var)The isNaN() function is used to check if a value is
not a number.
Question : List out some tools through which we can draw E-R diagrams for mysql.
Answer :
Case Studio
Smart Draw
Question : How can I retrieve values from one database server and store themin other
database server using PHP?
Answer : WeWe can always fetch from one database and rewrite to another. Here is a nice
solution of it.
$db1 = mysql_connect(host,user,pwd);
mysql_select_db(db1?, $db1);
$res1 = mysql_query(query,$db1);
$db2 = mysql_connect(host,user,pwd);
mysql_select_db(db2?, $db2);
$res2 = mysql_query(query,$db2);
At this point you can only fetch records from you previous ResultSet, i.e $res1 But you
cannot execute new query in $db1, even if yousupply the link as because the link was
overwritten by the new db.so at this point the following script will fail
$res3 = mysql_query(query,$db1); //this will failSo how to solve that? take a look below.
$db1 = mysql_connect(host,user,pwd);
mysql_select_db(db1?, $db1);
$res1 = mysql_query(query,$db1);
$db2 = mysql_connect(host,user,pwd, true);
mysql_select_db(db2?, $db2);
$res2 = mysql_query(query,$db2);
So mysql_connect has another optional boolean parameter whichindicates whether a link will
be created or not. As we connect to the $db2 with this optional parameter set to true, so both
link willremain live. Now the following query will execute successfully.
$res3 = mysql_query(query,$db1);
Question : List out the predefined classes in PHP?
Answer : Directory
stdClass
__PHP_Incomplete_Class
exception
php_user_filter
Question : How can I make a script that can be bi-language (supports English,
German)?
Answer : You can maintain two separate language file for each of the language. All the labels
are putted in both language files as variables and assign those variables in the PHP source. On
run-time choose the required language option.
Question : What are the difference between abstract class and interface?
Answer : Abstract class: abstract classes are the class where one or moremethods are abstract
but not necessarily all method has to be abstract.
Abstract methods are the methods, which are declare in its class but not defined. The
definition of those methods must be in its extending class.
Interface: Interfaces are one type of class where all the methods are abstract. That means all
the methods only declared but not defined. All the methods must be defined by its
implemented class.
Question : How can we send mail using JavaScript?
Answer : JavaScript does not have any networking capabilities as it isdesigned to work on
client site. As a result we can not send mails usingJavaScript. But we can call the client side
mail protocol mailtovia JavaScript to prompt for an Email to send. this requires the client to
approve it.
Question : How can we repair a MySQL table?
Answer : The syntex for repairing a MySQL table is REPAIR TABLENAME,
[TABLENAME, ], [Quick],[Extended].This command will repair the table specified if the
quick is given the MySQL will do a repair of only the index tree if the extended is givenit
will create index row by row.
Question : What are the advantages of stored procedures, triggers, indexes?
Answer : A stored procedure is a set of SQL commands that can be compiled andstored in
the server. Once this has been done, clients dont need tokeep re-issuing the entire query but
can refer to the stored procedure.This provides better overall performance because the query
has to beparsed only once, and less information needs to be sent between theserver and the
client. You can also raise the conceptual level by havinglibraries of functions in the server.
However, stored procedures ofcourse do increase the load on the database server system, as
more of the work is done on the server side and less on the client (application)side.Triggers
will also be implemented. A trigger is effectively a type of stored procedure, one that is
invoked when a particular event occurs.For example, you can install a stored procedure that is
triggered each time a record is deleted from a transaction table and that stored procedure
automatically deletes the corresponding customer from a customer table when all his
transactions are deleted.Indexes are used to find rows with specific column values
quickly.Without an index, MySQL must begin with the first row and then read through the
entire table to find the relevant rows. The larger the table, the more this costs. If the table has
an index for the columns in question, MySQL can quickly determine the position to seek to in
the middle of the data file without having to look at all the data. If a table has 1,000 rows, this
is at least 100 times faster than reading sequentially. If you need to access most of the rows, it
is faster to read sequentially, because this minimizes disk seeks.
Question : What is the maximum length of a table name, database name and field name
in MySQL?
Answer : The following table describes the maximum length for each type of identifier.
Identifier
Database
Table
Column
Index
Alias
Maximum Length(bytes)
64
64
64
64
255
There are some restrictions on the characters that may appear in identifiers.
Question : How many values can the SET function of MySQL take?
Answer : MySQL set can take zero or more values but at the maximum it can take 64 values.
Question : What are the other commands to know the structure of table using MySQL
commands except explain command?
Answer : describe Table-Name;
Question : How many tables will create when we create table, what are they?
Answer : The .frm file stores the table definition.The data file has a .MYD (MYData)
extension.The index file has a .MYI (MYIndex) extension.
Question : What is the purpose of the following files having extensions 1) .frm2) .myd
3) .myi? What do these files contain?
Answer : In MySql, the default table type is MyISAM.Each MyISAM table is stored on disk
in three files. The files have names that begin with the table name and have an extension to
indicate the file type.The .frm file stores the table definition.The data file has a .MYD
(MYData) extension.The index file has a .MYI (MYIndex) extension.
Question : What is maximum size of a database in MySQL?
Answer : If the operating system or file system places a limit on the number of files in a
directory, MySQL is bound by that constraint.The efficiency of the operating system in
handling large numbers offiles in a directory can place a practical limit on the number of
tables in a database. If the time required to open a file in the directory increases significantly
as the number of files increases, database performance can be adversely affected.The amount
of available disk space limits the number of tables.MySQL 3.22 had a 4GB (4 gigabyte) limit
on table size. With the MyISAM storage engine in MySQL 3.23, the maximum table size was
increased to65536 terabytes (2567 1 bytes). With this larger allowed table size,the
maximum effective table size for MySQL databases is usually determined by operating
system constraints on file sizes, not by MySQL internal limits.The InnoDB storage engine
maintains InnoDB tables within a table space that can be created from several files. This
allows a table to exceed the maximum individual file size. The table space can include raw
disk partitions, which allows extremely large tables. The maximum table space size is
64TB.The following table lists some examples of operating system file-size limits. This is
only a rough guide and is not intended to be definitive.For the most up-to-date information,
be sure to check the documentationspecific to your operating system.Operating System Filesize Limit Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
Linux 2.4+ (using ext3 filesystem) 4TB
Solaris 9/10 16TB
NetWare w/NSS filesystem 8TB
Win32 w/ FAT/FAT32 2GB/4GB
Win32 w/ NTFS 2TB (possibly larger)
MacOS X w/ HFS+ 2TB
Question : Give the syntax of Grant and Revoke commands?
Answer : The generic syntax for grant is as following :
> GRANT [rights] on [database/s] TO [username@hostname] IDENTIFIED
BY[password]now rights can be a) All privileges b) combination of create, drop, select,
insert, update and delete etc. We can grant rights on all databse by using *.* or some
specificdatabase by database.* or a specific table by database.table_name
username@hotsname can be either username@localhost, username@hostname and
username@% where hostname is any valid hostname and % represents any name, the *.*any
condition password is simply the password of user.
The generic syntax for revoke is as following :
> REVOKE [rights] on [database/s] FROM [username@hostname] now rights can be as
explained above a) All privileges b) combination of create, drop, select, insert, update and
delete etc.username@hotsname can be either username@localhost, username@hostname and
username@% where hostname is any valid hostname and % represents any name, the *.*any
condition
Question : Explain Normalization concept?
Answer : The normalization process involves getting our data to conform to three
progressive normal forms, and a higher level of normalization cannot be achieved until the
previous levels have been achieved (there are actually five normal forms, but the last two are
mainly academic and will not be discussed).First Normal Form The First Normal Form (or
1NF) involves removal of redundant data from horizontal rows. We want to ensure that there
is no duplication of data in a given row, and that every column stores the least amount of
information possible (making the field atomic). Second Normal Form Where the First
Normal Form deals with redundancy of data across a horizontal row, Second Normal Form
(or 2NF) deals with redundancy of data in vertical columns. As stated earlier, the normal
forms are progressive, so to achieve Second Normal Form, your tables must already be in
First Normal Form.Third Normal Form I have a confession to make; I do not often use Third
Normal Form. In Third Normal Form we are looking for data in our tables that is not fully
dependent on the primary key, but dependent on another value in the table.
Question : How can we find the number of rows in a table using MySQL?
Answer : Use this for mysql>SELECT COUNT(*) FROM table_name;
Question : How can we find the number of rows in a result set using PHP?
Answer :
$result = mysql_query($sql, $db_link);
$num_rows = mysql_num_rows($result);
echo $num_rows rows found;
Question : How many ways we can we find the current date using MySQL?
Answer :
SELECT CURDATE();
CURRENT_DATE() = CURDATE()
for time use SELECT CURTIME();
CURRENT_TIME() = CURTIME()
Question : What are the advantages and disadvantages of Cascading Style Sheets?
Answer :
External Style Sheets
Advantages : Can control styles for multiple documents at once. Classes can be created for
use on multiple HTML element types in many documents.Selector and grouping methods can
be used to apply styles under complex contexts.
Disadvantages : An extra download is required to import style information for eachdocument
The rendering of the document may be delayed until the externalstyle sheet is loaded
becomes slightly unwieldy for small quantities ofstyle definitions.
Embedded Style Sheets
Advantages : Classes can be created for use on multiple tag types in the document.Selector
and grouping methods can be used to apply styles under complexcontexts. No additional
downloads necessary to receive style information.
Disadvantages : This method can not control styles for multiple documents at once.
Inline Styles
Advantages : Useful for small quantities of style definitions. Can override otherstyle
specification methods at the local level so only exceptions needto be listed in conjunction
with other style methods.
Disadvantages : Does not distance style information from content (a main goal
ofSGML/HTML). Can not control styles for multiple documents at once.Author can not
create or control classes of elements to control multipleelement types within the document.
Selector grouping methods can not beused to create complex element addressing scenarios
Question : What type of inheritance that PHP supports?
Answer : In PHP an extended class is always dependent on a single base class,that is,
multiple inheritance is supported by interfaces. Classes are extended using the keyword
extends.
Question : What is the difference between Primary Key and Unique key?
Answer : Primary Key: A column in a table whose values uniquely identify therows in the
table. A primary key value cannot be NULL. Unique Key: Unique Keys are used to uniquely
identify each row in thetable. There can be one and only one row for each unique key value.
So NULL can be a unique key.There can be only one primary key for a table but there can be
morethan one unique for a table.
Question : The structure of table view buyers is as follows:
Field
Type
user_pri_id
int(15)
userid
varchar(10)
Null
YES
Key
Default
Extra
PRI
null
auto_increment
null
the value of user_pri_id the last row 999 then What will happen inthe following
conditions?Condition1: Delete all the rows and insert another row then.What is the
starting value for this auto incremented field user_pri_id ,Condition2: Delete the last
row(having the field value 999) andinsert another row then. What is the value for this
auto incremented field user_pri_id.
Answer : In both cases let the value for auto increment field be n then nextrow will have
value n+1 i.e. 1000.
Question : What are the advantages/disadvantages of MySQL and PHP?
Answer : Both of them are open source software (so free of cost), supportcross platform. php
is faster then ASP and JSP.
Question : What is the difference between GROUP BY and ORDER BY in Sql?
Answer : ORDER BY [col1],[col2],,[coln]; Tells DBMS according to what columns it
should sort the result. If two rows will have the same value in col1it will try to sort them
according to col2 and so on.GROUP BY[col1],[col2],,[coln]; Tells DBMS to group results
with same value of column col1. You can use COUNT(col1), SUM(col1), AVG(col1) with it,
if you want to count all items in group, sum all values or view average.
Question : What is the difference between char and varchar data types?
Answer : Set char to occupy n bytes and it will take n bytes even if u r storing a value of n-m
bytes Set varchar to occupy n bytes and it will take only the required space and will not use
the n bytes eg. name char(15) will waste 10 bytes if we store mizan, if each char takes a
byte eg. name varchar(15) will just use 5 bytes if we store mizan, if each char takes a byte.
rest 10 bytes will be free.
Question : What is the functionality of md5 function in PHP?
Answer : Calculate the md5 hash of a string. The hash is a 32-characterhexadecimal number.
I use it to generate keys which I use to identifyusers etc. If I add random no techniques to it
the md5 generated nowwill be totally different for the same string I am using.
Question : How can I load data from a text file into a table?
Answer : you can use LOAD DATA INFILE file_name; syntax to load datafrom a text file.
but you have to make sure thata) data is delimitedb) columns and data matched correctly.
Question : How can we know the number of days between two given dates using
MySQL?
Answer : SELECT DATEDIFF(2007-03-07?,2005-01-01?);
Question : How can we know the number of days between two given dates using PHP?
Answer : $date1 = date(Y-m-d);
$date2 = 2006-08-15?;
$days = (strtotime($date1) strtotime($date2)) / (60 * 60 * 24);