c# pdf image preview : Create a fillable pdf form from a word document SDK software service wpf winforms web page dnn 05-welling-php-mysql-web31-part78

277
Putting New Information in the Database
$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);
}
@ $db = new mysqli(‘localhost’, ‘bookorama’, ‘bookorama123’, ‘books’);
if (mysqli_connect_errno())
{
echo ‘Error: Could not connect to database.  Please try again later.’;
exit;
}
$query = “insert into books values
(‘“.$isbn.”’, ‘“.$author.”’, ‘“.$title.”’, ‘“.$price.”’)”;
$result = $db->query($query);
if ($result)
echo  $db->affected_rows.’ book inserted into database.’;
$db->close();
?>
</body>
</html>
The results of successfully inserting a book are shown in Figure 11.4.
Listing 11.4 Continued
Figure 11.4 The script completes successfully and reports that the book has
been added to the database.
Create a fillable pdf form from a word document - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
adding text fields to pdf; change tab order in pdf form
Create a fillable pdf form from a word document - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
create a pdf form that can be filled out; change font in pdf form field
278
Chapter 11 Accessing Your MySQL Database from the Web with PHP
If you look at the code for 
insert_book.php
,you can see that much of it is similar to
the script you wrote to retrieve data from the database.Here,you check that all the form
fields were filled in,and you format them correctly for insertion into the database (if
required) with 
addslashes()
:
if (!get_magic_quotes_gpc())
{
$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);
}
Because the price is stored in the database as a float,you don’t want to put slashes into
it.You can achieve the same effect of filtering out any odd characters on this numerical
field by calling 
doubleval()
,which we discussed in Chapter 1,“PHP Crash Course.”
This also takes care of any currency symbols that the user might have typed in the form.
Again, you connect to the database by instantiating the 
mysqli
object and setting up
a query to send to the database.In this case, the query is an SQL 
INSERT
:
$query = “insert into books values
(‘$isbn’, ‘$author’, ‘$title’, ‘$price’)”;
$result = $db->query($query);
This query is executed on the database in the usual way by calling 
$db->query()
(or
mysqli_query()
if you want to do things procedurally).
One significant difference between using 
INSERT
and 
SELECT
is in the use of
mysqli_affected_rows()
.This is a function in the procedural version or a class mem-
ber variable in the object-oriented version:
echo  $db->affected_rows.’ book(s) inserted into database.’;
In the previous script,you used 
mysqli_num_rows()
to determine how many rows were
returned by a 
SELECT
.When you write queries that change the database such as 
INSERT
s,
DELETE
s,and 
UPDATE
s, you should use 
mysqli_affected_rows()
instead.
We’ve now covered the basics of using MySQL databases from PHP.
Using Prepared Statements
The mysqli library supports the use of prepared statements.They are useful for speeding
up execution when you are performing large numbers of the same query with different
data.They also protect against SQL injection-style attacks.
The basic concept of a prepared statement is that you send a template of the query
you want to execute to MySQL and then send the data separately.You can send multiple
lots of the same data to the same prepared statement;this capability is particularly useful
for bulk inserts.
C# Create PDF Library SDK to convert PDF from other file formats
to create searchable PDF document from Microsoft Office Word, Excel and Create and save editable PDF with a blank page Create fillable PDF document with fields.
add signature field to pdf; allow users to save pdf form
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Create PDF document from OpenOffice Presentation in both .NET WinForms and ASP to change ODT, ODS, ODP forms to fillable PDF formats in RasterEdge.XDoc.PDF.dll.
create a pdf form in word; change font size in pdf form field
279
Using Prepared Statements
You could use prepared statements in the
insert_book.php
script,as follows:
$query = “insert into books values(?, ?, ?, ?)”;
$stmt = $db->prepare($query);
$stmt->bind_param(“sssd”, $isbn, $author, $title, $price);
$stmt->execute();
echo  $stmt->affected_rows.’ book inserted into database.’;
$stmt->close();
Let’s consider this code line by line.
When you set up the query, instead of substituting in the variables as done previously,
you put in question marks for each piece of data.You should not put any quotation
marks or other delimiters around these question marks.
The second line is a call to 
$db->prepare()
,which is called 
mysqli_stmt_
prepare()
in the procedural version.This line constructs a statement object or resource
that you will then use to do the actual processing.
The statement object has a method called 
bind_param()
.(In the procedural version,
it is called 
mysqli_stmt_bind_param()
.) The purpose of 
bind_param()
is to tell PHP
which variables should be substituted for the question marks.The first parameter is a for-
mat string,not unlike the format string used in 
printf()
.The value you are passing
here (
“sssd”
) means that the four parameters are a string,a string, a string,and a double,
respectively.Other possible characters in the format string are 
i
for integer and 
b
for
blob.After this parameter,you should list the same number of variables as you have ques-
tion marks in your statement.They will be substituted in this order.
The call to
$stmt->execute()
(
mysqli_stmt_execute()
in the procedural version)
actually runs the query.You can then access the number of affected rows and close the
statement.
So how is this prepared statement useful? The clever thing is that you can change the
values of the four bound variables and re-execute the statement without having to repre-
pare.This capability is useful for looping through bulk inserts.
As well as binding parameters, you can bind results.For 
SELECT
type queries,you can
use 
$stmt->bind_result()
(or 
mysqli_stmt_bind_result()
) to provide a list of vari-
ables that you would like the result columns to be filled in to. Each time you call 
$stmt-
>fetch()
(or 
mysqli_stmt_fetch()
),column values from the next row in the resultset
are filled into these bound variables.For example,in the book search script you looked
at earlier,you could use
$stmt->bind_result($isbn, $author, $title, $price);
to bind these four variables to the four columns that will be returned from the query.
After calling
$stmt->execute();
you can call
$stmt->fetch();
VB.NET Create PDF Library SDK to convert PDF from other file
component to convert Microsoft Office Word, Excel and Create and save editable PDF with a blank Create fillable PDF document with fields in Visual Basic .NET
pdf editable fields; create a fillable pdf form from a pdf
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create PDF document from OpenOffice Text Document with embedded ODS, ODP forms into fillable PDF formats.
change font size pdf form; adding text to pdf form
280
Chapter 11 Accessing Your MySQL Database from the Web with PHP
in the loop.Each time this is called, it fetches the next result row into the four bound
variables.
You can also use 
mysqli_stmt_bind_param()
and 
mysqli_stmt_bind_result()
in
the same script.
Note that at the time of writing (PHP5RC2),prepared statements caused an Apache-
crashing bug under Windows but worked fine on the Unix platforms.
Using Other PHP-Database Interfaces
PHP supports libraries for connecting to a large number of databases, including Oracle,
Microsoft SQL Server,and PostgreSQL.
In general,the principles of connecting to and querying any of these databases are
much the same.The individual function names vary,and different databases have slightly
different functionality, but if you can connect to MySQL,you should be able to easily
adapt your knowledge to any of the others.
If you want to use a database that doesn’t have a specific library available in PHP,you
can use the generic ODBC functions.ODBC,which stands for Open Database
Connectivity, is a standard for connections to databases.It has the most limited functional-
ity of any of the function sets,for fairly obvious reasons.If you have to be compatible
with everything, you can’t exploit the special features of anything.
In addition to the libraries that come with PHP,available database abstraction classes
such as 
PEAR::DB
allow you to use the same function names for each different type of
database.
Using a Generic Database Interface: PEAR DB
Let’s look at a brief example using the PEAR DB abstraction layer.This is one of the
core components of PEAR and probably the most widely used of all the PEAR compo-
nents.If you have PEAR installed, you should already have DB. If not,refer to the
“PEAR Installation” section in Appendix A,“Installing PHP and MySQL.”
For comparative purposes, let’s look at how you could write the search results script
differently using DB.
Listing 11.5 results_generic.php—Retrieves Search Results from the MySQL
Database and Formats Them for Display
<html>
<head>
<title>Book-O-Rama Search Results</title>
</head>
<body>
<h1>Book-O-Rama Search Results</h1>
<?php
// create short variable names
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
formatting. Create PDF files from both DOC and DOCX formats. Convert multiple pages Word to fillable and editable PDF documents. Professional
create pdf form; create pdf forms
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Convert multiple pages Word to fillable and editable PDF Convert both DOC and DOCX formats to PDF files. Easy to create searchable and scanned PDF files from
change font size in pdf fillable form; add print button to pdf form
281
Using a Generic Database Interface: PEAR DB
$searchtype=$_POST[‘searchtype’];
$searchterm=$_POST[‘searchterm’];
$searchterm= trim($searchterm);
if (!$searchtype || !$searchterm)
{
echo ‘You have not entered search details.  Please go back and try again.’;
exit;
}
if (!get_magic_quotes_gpc())
{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
// set up for using PEAR DB
require_once(‘DB.php’);
$user = ‘bookorama’;
$pass = ‘bookorama123’;
$host = ‘localhost’;
$db_name = ‘books’;
// set up universal connection string or DSN
$dsn = “mysqli://$user:$pass@$host/$db_name”;
// connect to database
$db = &DB::connect($dsn) ;
// check if connection worked
if (DB::isError($db))
{
echo $db->getMessage();
exit;
}
// perform query
$query = “select * from books where “.$searchtype.” like ‘%”.$searchterm.”%’”;
$result = $db->query($query);
// check that result was ok
if (DB::isError($result))
{
echo $db->getMessage();
Listing 11.5 Continued
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create fillable and editable PDF documents from Excel in Visual
change font size in pdf form; pdf form save
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create fillable and editable PDF documents from Excel in both Create searchable and scanned PDF files from Excel. Description: Convert to PDF/TIFF and save it
change font in pdf form; adding a text field to a pdf
282
Chapter 11 Accessing Your MySQL Database from the Web with PHP
exit;
}
// get number of returned rows
$num_results = $result->numRows();
// display each returned row
for ($i=0; $i <$num_results; $i++)
{
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
echo ‘<p><strong>’.($i+1).’. Title: ‘;
echo htmlspecialchars(stripslashes($row[‘title’]));
echo ‘</strong><br />Author: ‘;
echo stripslashes($row[‘author’]);
echo ‘<br />ISBN: ‘;
echo stripslashes($row[‘isbn’]);
echo ‘<br />Price: ‘;
echo stripslashes($row[‘price’]);
echo ‘</p>’;
}
// disconnect from database
$db->disconnect();
?>
</body>
</html>
Let’s examine what you do differently in this script.
To connect to the database,you use the line
$db = DB::connect($dsn);
This function accepts a universal connection string that contains all the parameters nec-
essary to connect to the database.You can see this if you look at the format of the con-
nection string:
$dsn = “mysqli://$user:$pass@$host/$db_name”;
After this,you check to see whether the connection was unsuccessful using the
isError()
method and,if so, print the error message and exit:
if (DB::isError($db))
{
echo $db->getMessage();
exit;
}
Listing 11.5 Continued
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Convert multiple pages PowerPoint to fillable and editable Easy to create searchable and scanned PDF files PDF document can be converted from PowerPoint2003 by
adding an image to a pdf form; add text fields to pdf
283
Next
Assuming everything has gone well,you then set up a query and execute it as follows:
$result = $db->query($query);
You can check the number of rows returned:
$num_results = $result->numRows();
You retrieve each row as follows:
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
The generic method 
fetchRow()
can fetch a row in many different formats; the 
parameter 
DB_FETCHMODE_ASSOC
tells it that you would like the row returned as an 
associative array.
After outputting the returned rows,you finish by closing the database connection:
$db->disconnect();
As you can see, this generic example is similar to the first script.
The advantages of using DB are that you need to remember only one set of database
functions and that the code will require minimal changes if you decide to change the
database software.
Because this is a MySQL book, we use the MySQL native libraries for extra speed
and flexibility.You might want to use the DB package in your projects because some-
times the use of an abstraction layer can be extremely helpful.
Further Reading
For more information on connecting MySQL and PHP together, you can read the
appropriate sections of the PHP and MySQL manuals.
For more information on ODBC,visit
http://www.webopedia.com/TERM/O/ODBC.html
Next
In the next chapter,we go into more detail about MySQL administration and discuss
how to optimize databases.
12
Advanced MySQL Administration
I
NTHIS CHAPTER
,
WE COVER SOME MORE ADVANCED
MySQL topics,including
advanced privileges,security, and optimization.
Key topics covered in this chapter include
n
Understanding the privilege system in detail
n
Making your MySQL database secure
n
Getting more information about databases
n
Speeding things up with indexes
n
Optimizing your database
n
Backing up and recovering
n
Implementing replication
Understanding the Privilege System in Detail
Chapter 9,“Creating Your Web Database,”described the process of setting up users and
granting them privileges.You saw how to do this with the 
GRANT
command.If you’re
going to administer a MySQL database,understanding exactly what 
GRANT
does and how
it works can be useful.
When you issue a 
GRANT
statement,it affects tables in the special database called
mysql
.Privilege information is stored in five tables in this database.Given this fact,when
granting privileges on databases,you should be cautious about granting access to the
mysql
database.
One side note is that the 
GRANT
command is available only from MySQL version
3.22.11 onward.
You can look at what’s in the 
mysql
database by logging in as an administrator and
typing
use mysql;
286
Chapter 12 Advanced MySQL Administration
If you do this,you can then view the tables in this database as usual by typing
show tables;
Your results look something like this:
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv    |
| db              |
| func            |
| help_category   |
| help_keyword    |
| help_relation   |
| help_topic      |
| host            |
| proc            |
| tables_priv     |
| user            |
+-----------------+
Each of these tables stores system information.Five of them—
user
,
host
,
db
,
tables_priv
,and 
columns_priv
—store privilege information.They are sometimes
called grant tables.These tables vary in their specific function but all serve the same gen-
eral function,which is to determine what users are and are not allowed to do.Each of
them contains two types of fields: scope fields,which identify the user, host, and part of a
database that the privilege refers to;and privilege fields,which identify which actions
can be performed by that user in that scope.
The 
user
and 
host
tables are used to decide whether a user can connect to the
MySQL server at all and whether she has any administrator privileges.The 
db
and 
host
tables determine which databases the user can access.The 
tables_priv
table determines
which tables within a database a user can use,and the 
columns_priv
table determines
which columns within tables she has access to.
The user Table
The 
user
table contains details of global user privileges.It determines whether a user is
allowed to connect to the MySQL server at all and whether she has any global-level
privileges—that is,privileges that apply to every database in the system.
You can see the structure of this table by issuing a 
describe user;
statement.The
schema for the 
user
table is shown in Table 12.1.
Documents you may be interested
Documents you may be interested