Solved

Multi connect to a single database with different charset(s) via PHP

Posted on 2007-04-02
2
312 Views
Last Modified: 2013-12-12
I tried to multi connect to a Mysql database with two different charset via PHP. but it seems it's not possible. because when i set charset of the second connection it will override charset of first connection!

#--(Begin)-->connecting to DB
$sourceDbInfo['link']=mysql_connect($sourceDbInfo['host'], $sourceDbInfo['username'], $sourceDbInfo['password']);
mysql_select_db($sourceDbInfo['name'],$sourceDbInfo['link']);
if ($sourceDbInfo['encoding']=='utf8') {
      mysql_query("SET NAMES utf8",$sourceDbInfo['link']);
      mysql_query("SET CHARACTER SET utf8",$sourceDbInfo['link']);
}

$destinationDbInfo['link']=mysql_connect($destinationDbInfo['host'], $destinationDbInfo['username'], $destinationDbInfo['password']);
mysql_select_db($destinationDbInfo['name'],$destinationDbInfo['link']);
if ($destinationDbInfo['encoding']=='utf8') {
      mysql_query("SET NAMES utf8", $destinationDbInfo['link']);
      mysql_query("SET CHARACTER SET utf8", $destinationDbInfo['link']);
}
#--(End)-->connecting to DB
0
Comment
Question by:Claudia_Presto
2 Comments
 
LVL 24

Expert Comment

by:glcummins
ID: 18843055
This is correct: Only one character set is available to a single user at a time. You have two options:

1. Close the first connection before opening the second with the new charset.
2. Use different login information (username and password). MySQL will then think you are a different user, and *should* allow the use of a different charset.
0
 
LVL 48

Accepted Solution

by:
hernst42 earned 500 total points
ID: 18843590
use (set the fourth paramter of mysql_connect to true to create a new link, even if the same host, user and password is used):
http://de3.php.net/mysql_connect
#--(Begin)-->connecting to DB
$sourceDbInfo['link']=mysql_connect($sourceDbInfo['host'], $sourceDbInfo['username'], $sourceDbInfo['password'],true);
mysql_select_db($sourceDbInfo['name'],$sourceDbInfo['link']);
if ($sourceDbInfo['encoding']=='utf8') {
      mysql_query("SET NAMES utf8",$sourceDbInfo['link']);
      mysql_query("SET CHARACTER SET utf8",$sourceDbInfo['link']);
}

$destinationDbInfo['link']=mysql_connect($destinationDbInfo['host'], $destinationDbInfo['username'], $destinationDbInfo['password'], true);
mysql_select_db($destinationDbInfo['name'],$destinationDbInfo['link']);
if ($destinationDbInfo['encoding']=='utf8') {
      mysql_query("SET NAMES utf8", $destinationDbInfo['link']);
      mysql_query("SET CHARACTER SET utf8", $destinationDbInfo['link']);
}
#--(End)-->connecting to DB
Authored by: Claudia_Presto
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Why is my wamp get_include_path() wrong? 2 21
How to refresh a page from a sub domain in ajax ? 34 26
Ahax pagination 9 33
rsyslog raw message 4 15
Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
Creating and Managing Databases with phpMyAdmin in cPanel.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question