Mark
Mark

Reputation: 39

Add MySQL query to PHP file

This is the original MySQL query:

 UPDATE jos_bully_table AS jbt1
 INNER
  JOIN ( SELECT jbt2.bully_concat_name,
                COUNT(*) AS b_name_count
           FROM jos_bully_table AS jbt2
          GROUP
             BY jbt2.bully_concat_name
       ) AS jbt3
    ON jbt3.bully_concat_name = jbt1.bully_concat_name
   SET jbt1.b_name_count = jbt3.b_name_count
;

It works great when running from phpMyAdmin. I clicked Create PHP Code and this is generated:

$sql = "UPDATE jos_bully_table AS jbt1\n"
    . " INNER\n"
    . " JOIN ( SELECT jbt2.bully_concat_name,\n"
    . " COUNT(*) AS b_name_count\n"
    . " FROM jos_bully_table AS jbt2\n"
    . " GROUP\n"
    . " BY jbt2.bully_concat_name\n"
    . " ) AS jbt3\n"
    . " ON jbt3.bully_concat_name = jbt1.bully_concat_name\n"
    . " SET jbt1.b_name_count = jbt3.b_name_count\n"
    . "";

I'm trying to run the same query from a php file, but the db isn't updating.

Here is my php file:

<?php

$database = "xxxxxxxxx" ;
$username = "xxxxxxxxx" ;
$password = "xxxxxxxxx" ;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");


mysql_query($sql);

$sql = "UPDATE jos_bully_table AS jbt1\n"
    . " INNER\n"
    . " JOIN ( SELECT jbt2.bully_concat_name,\n"
    . " COUNT(*) AS b_name_count\n"
    . " FROM jos_bully_table AS jbt2\n"
    . " GROUP\n"
    . " BY jbt2.bully_concat_name\n"
    . " ) AS jbt3\n"
    . " ON jbt3.bully_concat_name = jbt1.bully_concat_name\n"
    . " SET jbt1.b_name_count = jbt3.b_name_count\n"
    . "";

echo "<!-- SQL Error ".mysql_error()." -->";

?>

What is wrong with this?

Upvotes: 0

Views: 46

Answers (1)

Marc B
Marc B

Reputation: 360872

You're running your query string BEFORE you defined it.

$sql = "SELECT ..."
$result = mysql_query($sql) or die(mysql_error());

As well, look into HEREDOCs for defining multi-line strings:

$sql = <<<EOL
SELECT ..
FROM ...
WHERE ...
ORDER BY ..
EOL;

is far more readable than a multi-line concatenation

Upvotes: 5

Related Questions