This is a common mistake but many people do not realize this function comes from mysql itself, so therefore you need an active mysql connection open.
Usually the string will be empty and null when you call it from outside of the database connection portion of your code.
eg. an example of the wrong way and creating a null/empty string
$var = mysql_real_escape_string($myself)
mysql_connect();
// returns n........
In bash you test like this for problems that can be caused by non-printable characters since if you don't know how to identify it because it basically breaks your script.
echo "url=$url" should print something like this normally if you have properly formatted input/text:
url=::http://someaddress.com::
But if you have some weird hidden characters (not visible in a text editor of any sort you'll get something like this
::l=::http://s........
If you have a webserver and find you have high IO/lagginess MySQL is one of the first things to check. It turns out MySQL was my problem and it was creating a high load on my server, especially for IO.
How to Enable MySQL Slow Query Logging To Find Slow Performance/Queries
vi /etc/my.cnf
Add this anywhere under [mysqld]
#slow queries
log-slow-queries = /var/log/mysql/mysqlslowqueries.log
long_query_time = 1........