Link to home
Start Free TrialLog in
Avatar of breeze351
breeze351

asked on

Need an extra set of eyes

Having a problem with this code.
mysql_query($conn,"UPDATE mapfile SET TYPE = .$type, \" TENANT = .$tenant, FRONTAGE = .%fontage, SIC = .$sic
            WHERE SEQ = .$Building_Id and STOREKEY = .$Space_Id";
ASKER CERTIFIED SOLUTION
Avatar of Gary
Gary
Flag of Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Why is there a '%' instead of a '$' in "%fontage"?
Fortunately all of the PHP functions are documented in the online man pages.  Example here, showing the mysql_query() function.
http://php.net/manual/en/function.mysql-query.php

When you get to the warning and discover that PHP is doing away with MySQL support, you may find this article helpful.  It shows how to make the required upgrade from MySQL to one of the supported extensions.
https://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/A_11177-PHP-MySQL-Deprecated-as-of-PHP-5-5-0.html
Did you cut and paste that from your code or type it in - because there are so many things wrong with it as has been pointed out in previous posts it is not surprising it does not work.

The only change I would make to Gary's post is to use single quotes instead of double around the strings - just makes for a neater look but that is personal preference.
Unless you are using multiple connections you don't have to specify the link resource in the mysql_query call
I also have developed a habit of putting {} around my in-string variables - it is not necessary but it does help to highlight where the variables are.

mysql_query("UPDATE mapfile SET TYPE ='{$type}', TENANT = '{$tenant}', FRONTAGE = '%fontage', SIC = '$sic'
            WHERE SEQ = '{$Building_Id}' and STOREKEY = '{$Space_Id}'"); 

Open in new window


And as Ray mentioned in his post post 5.5 the mysql library is no longer supported - mysql lib calls will simply fail - I would consider moving over to mysqli.

Beyond that - try getting the query to work in a query editor SQLYog, MySQL Workbench or PHPMySQL - once it is working there translate it back into your code.
Here is a good way to write a query - construct it in a PHP variable, instead of loading it into the function call.  That way you can visualize the query and you don't have to guess about what might be wrong.

$sql = "SELECT col FROM myTable WHERE name='Ray' LIMIT 1";
$res = mysql_query($sql);
if (!$res)
{
    var_dump($sql);
    echo mysql_error();
    trigger_error("QUERY FAILED", E_USER_ERROR);
}

Open in new window

Avatar of breeze351
breeze351

ASKER

Thanks.
I has a bad day yesterday and I couldn't see it.
You ever had one of those where you stare at the code and you can't see it.
Glenn