<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>MySQLi extension basic examples</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysqli.examples.html">Examples</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.mysqli.html">mysqli</a></div> <div class="up"><a href="mysqli.examples.html">Examples</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="mysqli.examples-basic" class="section"> <h2 class="title">MySQLi extension basic examples</h2> <p class="para"> This example shows how to connect, execute a query, use basic error handling, print resulting rows, and disconnect from a MySQL database. </p> <p class="para"> This example uses the freely available Sakila database that can be downloaded from <a href="http://dev.mysql.com/doc/sakila/en/index.html" class="link external">» dev.mysql.com, as described here</a>. To get this example to work, (a) install sakila and (b) modify the connection variables (host, your_user, your_pass). </p> <div class="example" id="example-1864"> <p><strong>Example #1 MySQLi extension overview example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// Let's pass in a $_GET variable to our example, in this case<br />// it's aid for actor_id in our Sakila database. Let's make it<br />// default to 1, and cast it to an integer as to avoid SQL injection<br />// and/or related security problems. Handling all of this goes beyond<br />// the scope of this simple example. Example:<br />// http://example.org/script.php?aid=42<br /></span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'aid'</span><span style="color: #007700">]) && </span><span style="color: #0000BB">is_numeric</span><span style="color: #007700">(</span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'aid'</span><span style="color: #007700">])) {<br /> </span><span style="color: #0000BB">$aid </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'aid'</span><span style="color: #007700">];<br />} else {<br /> </span><span style="color: #0000BB">$aid </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Connecting to and selecting a MySQL database named sakila<br />// Hostname: 127.0.0.1, username: your_user, password: your_pass, db: sakila<br /></span><span style="color: #0000BB">$mysqli </span><span style="color: #007700">= new </span><span style="color: #0000BB">mysqli</span><span style="color: #007700">(</span><span style="color: #DD0000">'127.0.0.1'</span><span style="color: #007700">, </span><span style="color: #DD0000">'your_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'your_pass'</span><span style="color: #007700">, </span><span style="color: #DD0000">'sakila'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Oh no! A connect_errno exists so the connection attempt failed!<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">connect_errno</span><span style="color: #007700">) {<br /> </span><span style="color: #FF8000">// The connection failed. What do you want to do? <br /> // You could contact yourself (email?), log the error, show a nice page, etc.<br /> // You do not want to reveal sensitive information<br /><br /> // Let's try this:<br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">"Sorry, this website is experiencing problems."</span><span style="color: #007700">;<br /><br /> </span><span style="color: #FF8000">// Something you should not do on a public site, but this example will show you<br /> // anyways, is print out MySQL error related information -- you might log this<br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">"Error: Failed to make a MySQL connection, here is why: \n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #DD0000">"Errno: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">connect_errno </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #DD0000">"Error: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">connect_error </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> <br /> </span><span style="color: #FF8000">// You might want to show them something nice, but we will simply exit<br /> </span><span style="color: #007700">exit;<br />}<br /><br /></span><span style="color: #FF8000">// Perform an SQL query<br /></span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">"SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = </span><span style="color: #0000BB">$aid</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />if (!</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">)) {<br /> </span><span style="color: #FF8000">// Oh no! The query failed. <br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">"Sorry, the website is experiencing problems."</span><span style="color: #007700">;<br /><br /> </span><span style="color: #FF8000">// Again, do not do this on a public site, but we'll show you how<br /> // to get the error information<br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">"Error: Our query failed to execute and here is why: \n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #DD0000">"Query: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$sql </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #DD0000">"Errno: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">errno </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #DD0000">"Error: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">error </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> exit;<br />}<br /><br /></span><span style="color: #FF8000">// Phew, we made it. We know our MySQL connection and query <br />// succeeded, but do we have a result?<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">num_rows </span><span style="color: #007700">=== </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br /> </span><span style="color: #FF8000">// Oh, no rows! Sometimes that's expected and okay, sometimes<br /> // it is not. You decide. In this case, maybe actor_id was too<br /> // large? <br /> </span><span style="color: #007700">echo </span><span style="color: #DD0000">"We could not find a match for ID </span><span style="color: #0000BB">$aid</span><span style="color: #DD0000">, sorry about that. Please try again."</span><span style="color: #007700">;<br /> exit;<br />}<br /><br /></span><span style="color: #FF8000">// Now, we know only one result will exist in this example so let's <br />// fetch it into an associated array where the array's keys are the <br />// table's column names<br /></span><span style="color: #0000BB">$actor </span><span style="color: #007700">= </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">fetch_assoc</span><span style="color: #007700">();<br />echo </span><span style="color: #DD0000">"Sometimes I see " </span><span style="color: #007700">. </span><span style="color: #0000BB">$actor</span><span style="color: #007700">[</span><span style="color: #DD0000">'first_name'</span><span style="color: #007700">] . </span><span style="color: #DD0000">" " </span><span style="color: #007700">. </span><span style="color: #0000BB">$actor</span><span style="color: #007700">[</span><span style="color: #DD0000">'last_name'</span><span style="color: #007700">] . </span><span style="color: #DD0000">" on TV."</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Now, let's fetch five random actors and output their names to a list.<br />// We'll add less error handling here as you can do that on your own now<br /></span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">"SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5"</span><span style="color: #007700">;<br />if (!</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">)) {<br /> echo </span><span style="color: #DD0000">"Sorry, the website is experiencing problems."</span><span style="color: #007700">;<br /> exit;<br />}<br /><br /></span><span style="color: #FF8000">// Print our 5 random actors in a list, and link to each actor<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"<ul>\n"</span><span style="color: #007700">;<br />while (</span><span style="color: #0000BB">$actor </span><span style="color: #007700">= </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">fetch_assoc</span><span style="color: #007700">()) {<br /> echo </span><span style="color: #DD0000">"<li><a href='" </span><span style="color: #007700">. </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'SCRIPT_FILENAME'</span><span style="color: #007700">] . </span><span style="color: #DD0000">"?aid=" </span><span style="color: #007700">. </span><span style="color: #0000BB">$actor</span><span style="color: #007700">[</span><span style="color: #DD0000">'actor_id'</span><span style="color: #007700">] . </span><span style="color: #DD0000">"'>\n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #0000BB">$actor</span><span style="color: #007700">[</span><span style="color: #DD0000">'first_name'</span><span style="color: #007700">] . </span><span style="color: #DD0000">' ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$actor</span><span style="color: #007700">[</span><span style="color: #DD0000">'last_name'</span><span style="color: #007700">];<br /> echo </span><span style="color: #DD0000">"</a></li>\n"</span><span style="color: #007700">;<br />}<br />echo </span><span style="color: #DD0000">"</ul>\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// The script will automatically free the result and close the MySQL<br />// connection when it exits, but let's just do it anyways<br /></span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">free</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">close</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysqli.examples.html">Examples</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.mysqli.html">mysqli</a></div> <div class="up"><a href="mysqli.examples.html">Examples</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>