不是很明确吗?
“对于最后一个操作返回错误信息:table'db2.tab1' is not exist;”
他是说库db2中没有表tab1,看样子也是没有,tab1在db1中请检查$dataDB->query方法的代码
若无形如mysql_select_db的语句,则一定要用形如mysql_db_query的函数
“对于最后一个操作返回错误信息:table'db2.tab1' is not exist;”
他是说库db2中没有表tab1,看样子也是没有,tab1在db1中请检查$dataDB->query方法的代码
若无形如mysql_select_db的语句,则一定要用形如mysql_db_query的函数
mysql_connect
mysql_select_db
mysql_query
现在的问题应该不是这里,因为,之前的语句都没有问题,而且这个类是用了很久的类了,不是我自己写了还没测试的。问题出在在交叉调用的时候2个的属性Database被混淆了。
如果说使用引用&的话会产生这个问题,但是现在并没有用啊。
query有第二个参数的
可以选择数据库连结的
class My_Db_Sql
{
var $Database;
function My_Db_Sql($database){
$this->Database = $database;
mysql_connect('localhost', 'root', '');
mysql_select_db($this->Database);
}
function test($tab)
{
if (!@mysql_query('select * from '.$tab)){
echo mysql_error().'<br>';
}else{
echo $tab.'<br>';
}
}
}$gServDB = new My_Db_Sql('db1');
$gServDB->test('tab1');$dataDB = new My_Db_Sql('db2');
$dataDB->test('tab2');$gServDB->test('tab1');
?>
结果是
tab1
tab2
Table 'db2.tab1' doesn't exist
class My_Db_Sql
{
var $Database;
var $Link_ID;
function My_Db_Sql($database){
$this->Database = $database;
$this->Link_ID = mysql_connect('localhost', 'root', '');
mysql_select_db($this->Database);
}
function test($tab)
{
if (!@mysql_query('select * from '.$tab, $this->Link_ID)){
echo mysql_error()." ".$this->Link_ID.'<br>';
}else{
echo $tab." ".$this->Link_ID.'<br>';
}
}
}$gServDB = new My_Db_Sql('db1');
$gServDB->test('tab1');$dataDB = new My_Db_Sql('db2');
$dataDB->test('tab2');$gServDB->test('tab1');
?>结果如下:
tab1 Resource id #2
tab2 Resource id #2
Table 'db2.tab1' doesn't exist Resource id #2
也就是使用了同一个mysql连接对么?这个如何解决阿??
mysql_db_query而不能用
mysql_connect
mysql_select_db
mysql_query经过试验上面的方法解决了问题,
但是我想问问这是不是好地解决办法?
上面哪个的实际效率应该是低于下面的吧?
上面的那个我认为实际是:
mysql> use table;
mysql> query;