<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave PC Guy &#187; API</title>
	<atom:link href="http://www.davepcguy.com/archive/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davepcguy.com</link>
	<description>Computers and Technology</description>
	<lastBuildDate>Fri, 08 Apr 2011 15:01:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Bit.ly API and adding URLs to your MySQL database</title>
		<link>http://www.davepcguy.com/archive/bit-ly-api-and-adding-urls-to-your-mysql-database/</link>
		<comments>http://www.davepcguy.com/archive/bit-ly-api-and-adding-urls-to-your-mysql-database/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 22:16:10 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP and Scripting]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[url-shortener]]></category>

		<guid isPermaLink="false">http://www.davepcguy.com/?p=1011</guid>
		<description><![CDATA[In my last tutorial, I&#8217;ve touched on how to use the to.ly API and how to make automatic &#8220;Tweet it&#8221; buttons with a relevant message. Well, this can get problematic if with every page refresh, your server sends out a request to the to.ly server for a short link. Pretty soon, you&#8217;ll be getting &#8220;Too]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif&amp;source=clrkmck&amp;style=normal&amp;service_api=clrkmck%3AR_a73f58a91ed3515157df75ab6c37730f&amp;hashtags=API,internet,php,server,social+networking,url-shortener&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In my last<a title="tweet this and URL shortening API" href="http://www.davepcguy.com/archive/tweet-this-and-url-shortening-api/"> tutorial</a>, I&#8217;ve touched on how to use the to.ly API and how to make automatic &#8220;Tweet it&#8221; buttons with a relevant message.<br />
Well, this can get problematic if with every page refresh, your server sends out a request to the to.ly server for a short link. Pretty soon, you&#8217;ll be getting &#8220;Too Many Connections&#8221; and you&#8217;re screwed. Just like I was, so here&#8217;s an idea. How about we store those links in a database&#8230;.automatically?</p>
<p>You see, it&#8217;s much easier to create a script that will request a shortlink, adds the link to the database, and then just call it up whenever you need it. It works perfectly well on my <a title="Only A Quote" href="http://www.onlyaquote.com">quote site</a>. Basically, whenever you create a website with get-requests, tons of pages, and all that. You can use the following script to make it all work, automatically (again).</p>
<ul>
<li><a href="#bitly">Bit.ly shortlink implementation</a></li>
<li><a href="#mysql">Adding URL Links to a MySQL database</a></li>
</ul>
<br />
<span id="more-1011"></span></p>
<h1><a name="bitly">Bit.ly</a></h1>
<p>Let&#8217;s get some bit.ly action going here. First, you need to create an account. Then you need to get the <a title="bitly API key" href="http://bit.ly/account/your_api_key">bit.ly API key</a><a rel="attachment wp-att-1012" href="http://www.davepcguy.com/archive/bit-ly-api-and-adding-urls-to-your-mysql-database/bitly/"><img class="aligncenter size-medium wp-image-1012" title="bitly" src="http://www.davepcguy.com/wp-content/uploads/2009/12/bitly-300x200.png" alt="" width="300" height="200" /></a>Next, let&#8217;s look at a neat <a title="bitly php script" href="http://davidwalsh.name/bitly-php">script</a> I found and made a few changes to so you could simply use include() and have a ready function with all the right variables:</p>
<pre class="brush: php; title: ;">
// Variables
$bitlylogin = 'loginname';
$apikey = 'long series of numbers that make up your API key';

/* make a URL small */
function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')
{
 //create the URL
 $bitly = 'http://api.bit.ly/shorten?version='.$version.'&amp;longUrl='.urlencode($url).'&amp;login='.$login.'&amp;apiKey='.$appkey.'&amp;format='.$format;

 //get the url
 //could also use cURL here
 $response = file_get_contents($bitly);

 //parse depending on desired format
 if(strtolower($format) == 'json')
 {
 $json = @json_decode($response,true);
 return $json['results'][$url]['shortUrl'];
 }
 else //xml
 {
 $xml = simplexml_load_string($response);
 return 'http://bit.ly/'.$xml-&gt;results-&gt;nodeKeyVal-&gt;hash;
 }
}
</pre>
<p>I like to set my function up like this so that I can always interchange values, and so that I will automatically have the right values stored in those two variables above ($bitlylogin and $apikey). You don&#8217;t need to do that. You could simply change the function definition like to include defaults:</p>
<pre class="brush: php; title: ;">
function make_bitly_url($url,$login = 'loginusername',$appkey = 'long api key',$format = 'xml',$version = '2.0.1')
</pre>
<p>Now as far as implementation of the script goes, it&#8217;s pretty simple:</p>
<pre class="brush: php; title: ;">
$url = &quot;Http://www.davepcguy.com&quot;;
$shorturl = make_bitly_url($url, $bitlylogin, $apikey);
echo $shorturl;
</pre>
<p>And you&#8217;ll get the short url echoed out. If you use the default value version you can simply do this:</p>
<pre class="brush: php; title: ;">
$url = &quot;http://www.davepcguy.com&quot;;
$shorturl = make_ibtly_url($url);
echo $shorturl;
</pre>
<p>You&#8217;re done. Easy enough, eh?</p>
<h1><a name="mysql">MySQL Database</a></h1>
<p>Believe it, or not. It&#8217;s actually rather tricky to add a URL into a database. You have to select the correct format in the table, decode and encode stuff. It&#8217;s pretty messy and I have not found a good tutorial online on how to do this.<br />
So here goes, let&#8217;s assume you use the method above to create short links. It&#8217;ll make life much easier, trust me.</p>
<p>First, let&#8217;s create a table in your database:</p>
<pre class="brush: php; title: ;">
//login variables
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db = 'sample database';

//connect
$connection = mysql_connect($host, $user, $pass) or die ('Unable to connect!');

//database select
mysql_select_db($db) or die ('Unable to select database!');

//the right query
$query = &quot;CREATE TABLE sample_table
(
id int NOT NULL auto_increment primary key,
name varchar(50) NOT NULL,
email varchar(50) NOT NULL ,
message text NOT NULL,
url varchar(255) NOT NULL
)&quot;;

//executing query
$result = mysql_query($query) or die ('Error in Query');
</pre>
<p>Notice that I used a varchar(255) for the datatype. You could use varchar(55) or any other number. Every shortlink by bit.ly is 20 characters&#8230;max. The problem is when you add the information in your database so I recommend a good 255 characters.</p>
<p>Next, you have to make sure you know what you want out of the script. I made a script so that every time my website asked for a row of information, it would automatically add the URL (since I was a bit late with this idea, I had to find a way to add the information without having to recreate the whole database). Also, it&#8217;s a good practice to check if the data is present and in case it&#8217;s not, add it. Here&#8217;s what I did:</p>
<pre class="brush: php; title: ;">
//connect

$name = 'sample name';

//query for a particular row with the name
$query = 'SELECT * FROM sample_table WHERE name = $name'';

    // execute query
    $result = mysql_query($query) or die (&quot;Error in query: $query.&quot;.mysql_error());

//check if the url column has anything in it
if (empty($row[4])) {

//if it IS empty, let's make a shortlink
$url = make_bitly_url($permalink,$bitlylogin,$apikey,'xml');
//we have to encode the url. I'll explain that
$url = urlencode($url);
//make a query to update (don't forget the quotation marks!)
$query = 'UPDATE quotes SET url = &quot;'.$url.'&quot; WHERE name = '.$name.'';
//execute query
$urlresult = mysql_query($query) or die (&quot;Error in query: $query. &quot;.mysql_error());
//decode url for later use in the script
$url = urldecode($url);
}

//let's make an else statement in case the information IS present
else {
//let's decode that encoded url
$url = urldecode($row[4]);
}
</pre>
<p>Now you have the $url variable down! w00t. You can do a bunch of stuff with that. Like implement it in that <a title="Tweet this!" href="http://www.davepcguy.com/archive/tweet-this-and-url-shortening-api/">twitter button</a> I keep talking about. Check out my <a title="Only A Quote" href="http://www.onlyaquote.com">new site</a> too to see it in action.</p>
<p>Oh about that encoding and decoding. If you try to submit the $url without encoding it, you&#8217;ll get an error because the characters &#8220;/&#8221; and &#8220;:&#8221; and some of the other ones have a special meaning in SQL. Here&#8217;s what the encoded and decoded versions look like:</p>
<blockquote><p>normal: http://bit.ly/8oQBvB</p>
<p>encoded: http%3A%2F%2Fbit.ly%2F8oQBvB</p>
<p>decoded: http://bit.ly/8oQBvB</p></blockquote>
<p>As you can see, the encoded version uses the &#8220;%&#8221; characters (ascii) for the coding.</p>
<p>Don&#8217;t forget to encode and decode then!</p>
<p>I hope you enjoyed my tutorial <img src='http://www.davepcguy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />




Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;partner=sociable" title="Print"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;bodytext=In%20my%20last%20tutorial%2C%20I%27ve%20touched%20on%20how%20to%20use%20the%20to.ly%20API%20and%20how%20to%20make%20automatic%20%22Tweet%20it%22%20buttons%20with%20a%20relevant%20message.%0D%0AWell%2C%20this%20can%20get%20problematic%20if%20with%20every%20page%20refresh%2C%20your%20server%20sends%20out%20a%20request%20to%20the%20to.ly%20server%20for%20a%20" title="Digg"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;notes=In%20my%20last%20tutorial%2C%20I%27ve%20touched%20on%20how%20to%20use%20the%20to.ly%20API%20and%20how%20to%20make%20automatic%20%22Tweet%20it%22%20buttons%20with%20a%20relevant%20message.%0D%0AWell%2C%20this%20can%20get%20problematic%20if%20with%20every%20page%20refresh%2C%20your%20server%20sends%20out%20a%20request%20to%20the%20to.ly%20server%20for%20a%20" title="del.icio.us"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;t=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database" title="Facebook"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;annotation=In%20my%20last%20tutorial%2C%20I%27ve%20touched%20on%20how%20to%20use%20the%20to.ly%20API%20and%20how%20to%20make%20automatic%20%22Tweet%20it%22%20buttons%20with%20a%20relevant%20message.%0D%0AWell%2C%20this%20can%20get%20problematic%20if%20with%20every%20page%20refresh%2C%20your%20server%20sends%20out%20a%20request%20to%20the%20to.ly%20server%20for%20a%20" title="Google Bookmarks"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;source=Dave+PC+Guy+Computers+and+Technology&amp;summary=In%20my%20last%20tutorial%2C%20I%27ve%20touched%20on%20how%20to%20use%20the%20to.ly%20API%20and%20how%20to%20make%20automatic%20%22Tweet%20it%22%20buttons%20with%20a%20relevant%20message.%0D%0AWell%2C%20this%20can%20get%20problematic%20if%20with%20every%20page%20refresh%2C%20your%20server%20sends%20out%20a%20request%20to%20the%20to.ly%20server%20for%20a%20" title="LinkedIn"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database" title="Reddit"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;t=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;s=In%20my%20last%20tutorial%2C%20I%27ve%20touched%20on%20how%20to%20use%20the%20to.ly%20API%20and%20how%20to%20make%20automatic%20%22Tweet%20it%22%20buttons%20with%20a%20relevant%20message.%0D%0AWell%2C%20this%20can%20get%20problematic%20if%20with%20every%20page%20refresh%2C%20your%20server%20sends%20out%20a%20request%20to%20the%20to.ly%20server%20for%20a%20" title="Tumblr"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database%20-%20http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F" title="Twitter"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;body=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F" title="email"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database&amp;url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F" title="Slashdot"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davepcguy.com%2Farchive%2Fbit-ly-api-and-adding-urls-to-your-mysql-database%2F&amp;title=Bit.ly%20API%20and%20adding%20URLs%20to%20your%20MySQL%20database" title="StumbleUpon"><img src="http://www.davepcguy.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davepcguy.com/archive/bit-ly-api-and-adding-urls-to-your-mysql-database/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

