Jump to content

Can't get two open SQL connections to work


Mavrik347

Recommended Posts

Hello guys, I hope you can help.

 

I can't get my page to switch between two database connections properly :(

It seems to ignore the second connection.

 

I'm trying to go through each group in database one and find out how many members they have registered in database two by checking the field "tsName".

 

This is a valid query for database one.

$fetchUsers = mysql_query("SELECT * FROM $db_corps_table ORDER BY cName;", $con1);

This is a valid query for database two.

$fetchUsers = mysql_query("SELECT * FROM 'users' WHERE tsName LIKE $cTicker%;", $con2);

However despite me specifying which database link to use it tries to use every query on database one ($con1). So I can never query database two ($con2) because it just breaks with the result below. :S

 

$fetchUsers = mysql_query("SELECT * FROM $db_corps_table ORDER BY cName;", $con1);

gives

AREA 43 [A-43] (11):

result

result

result

(there are 3 groups in database one)

But:

$fetchUsers = mysql_query("SELECT * FROM 'users' WHERE tsName LIKE $cTicker%;", $con2); 

gives

AREA 43 [A-43] (11):

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sever/public_html/mav/tools/ts_corp_registrations.php on line 51

 

<?php
// ===== Connect to database one (group) =====
$con1 = mysql_connect($db_host,$db_corps_user,$db_corps_pass);
if (!$con1) {
	die("Could not connect:" . mysql_error());
}
$db_select1 = mysql_select_db($db_corps_db, $con1);
if (!$db_select1) {
	die ("Could not select database:" . mysql_error());
}
// ===== Connect to database two (members) =====
$con2 = mysql_connect($db_host,$db_ts_user,$db_ts_pass, true);
if (!$con2) {
	die("Could not connect:" . mysql_error());
}
$db_select2 = mysql_select_db($db_ts_db, $con2);
if (!$db_select2) {
	die ("Could not select database:" . mysql_error());
}

$fetchCorps = mysql_query("SELECT * FROM $db_corps_table ORDER BY cName;", $con1);
while ($row = mysql_fetch_array($fetchCorps)) {
// For each of the results, gather details from database one, then see how many members we can find in database two 
$cName = $row["cName"];
$cTicker = mysql_real_escape_string($row["cTicker"],$con1);
$cMembers = $row["cMembers"];

echo $cName." [".$cTicker."] (".$cMembers."):<br />";
// ========================== HERE BE PROBLEMS ==========================
//$fetchUsers = mysql_query("SELECT * FROM $db_corps_table ORDER BY cName;", $con1);
$fetchUsers = mysql_query("SELECT * FROM 'users' WHERE tsName LIKE $cTicker%;", $con2);
// ===================================================================
while ($rowTS = mysql_fetch_array($fetchUsers)) {
	echo "result<br />";
}
}
// all done, close DB connections
mysql_close($con2);
mysql_close($con1);
?>

Link to comment
Share on other sites

$fetchUsers = mysql_query("SELECT * FROM 'users' WHERE tsName LIKE $cTicker%;", $con2);

There's no quotes around your LIKE term and your tablename needs to be enclosed in `backticks` not 'single quotes'.

 

Always echo the error and never assume you know what the problem is.  It's probably using the right db, your query is malformed.

Link to comment
Share on other sites

Thanks for the fast reply!

 

I tried both

SELECT * FROM 'users' WHERE tsName 'LIKE $cTicker%';
SELECT * FROM 'users' WHERE tsName 'LIKE' $cTicker%;
SELECT * FROM 'users' WHERE tsName LIKE% $cTicker;
SELECT * FROM 'users' WHERE tsName 'LIKE%' $cTicker;
SELECT * FROM 'users' WHERE tsName LIKE '$cTicker%';

But still the same error. :/

 

You're right though, it was very silly of me to not echo the mysql_error()

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''users' WHERE tsName 'LIKE%' A-43' at line 1"

Link to comment
Share on other sites

tsName is your 'variable'

LIKE is your 'operator'

$cTicker% is your 'value'

 

Which one do you quote?

 

Syntax is the first thing covered when learning any language. This is something you should know before you attempt to code anything.

Link to comment
Share on other sites

SELECT * FROM users WHERE tsName LIKE '$cTicker%';

 

Thanks man, so much. Had my head in a spin there for a minute. I generally know SQL syntax, the reason I was so confused is that the original query I typed into PHPMyAdmin worked straight off the bat. Then when I made it generate the query for me it generated the same thing I just typed. So I thought it must be right.

 

All working as you can see. Thank you lovely chaps :)

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.