2012-03-07 3 views
0

У меня есть 2 соединения db, db1 является основным db, а db2 - копией.PHP/MySQL - Создать таблицу, если не существует

мой сценарий копирует с db2 (это была разработка), чтобы сделать db1 тем же.

Однако я не могу получить таблицу создания, если она не существует, чтобы работать с использованием более 1 базы данных и использовать «LIKE».

Это соединение:

<?php 
$host = 'localhost'; 

$db1 = "***"; 
$username_db1 = '***'; 
$password_db1 = '***'; 
$db_c1 = mysql_connect($host, $username_db1, $password_db1) or die('Error connecting to Database!<br>'.mysql_error()); 

$db2 = "***"; 
$username_db2 = '***'; 
$password_db2 = '***'; 
$db_c2 = mysql_connect($host, $username_db2, $password_db2, true) or die('Error connecting to Database!<br>'.mysql_error()); 

mysql_select_db($db1, $db_c1); 
mysql_select_db($db2, $db_c2); 
?> 

Это сценарий, а часть его.

$tables1 = array(); 
$tables2 = array(); 

$res = mysql_list_tables($db1, $db_c1); 
while (list($tmp) = mysql_fetch_row($res)) 
{ 
    $tables1[] = $tmp; 
} 

$res = mysql_list_tables($db2, $db_c2); 
while (list($tmp) = mysql_fetch_row($res)) 
{ 
    $tables2[] = $tmp; 
} 

// Tables creates if not exists 
foreach($tables2 as $k=>$v) 
{ 
    mysql_query("CREATE TABLE IF NOT EXISTS ".$db1.".".$v." LIKE ".$db2.".".$v, $db_c1); 
} 

Я думаю, что проблема с LIKE я не думаю, что он читает правильно, у меня есть переменная $ сбрасывали tables2 и он пришел с результатами.

Спасибо

+0

попробуйте распечатать запрос в режиме foreach и посмотреть, не выходит ли его из строя. – Astha

ответ

0

попробуйте сначала в mysql. затем откройте таблицу 2, затем попробуйте свой запрос, прежде чем делать это динамически. затем один за другим меняют ваш запрос на переменные. я не могу прочитать много из кода, но это будет мой подход.