<?php
//连接数据
$con=mysql_connect("localhost","root","welcome123") or die("无法连接数据库".mysql_error());
//判断是否有my_project数据库
$existDB=mysql_select_db("my_project",$con);
//echo "没有my_project数据库";
if(!$existDB)
{
//创建数据库
$cdatabseSql="Create DATABASE my_project";
mysql_query($cdatabseSql,$con);
}
else
{
echo "有数据库";
}
//判断是否有sendmail表
$row=mysql_query("show databases");
$database=array();
$finddatabase="sendmail";
while ($result=mysql_fetch_array($row,MYSQL_ASSOC))
{
$database[]=$result['Database'];
}
unset($result,$row);

if(!in_array($finddatabase,$database))
{
echo "没有表";
$ctableSql="Create TABLE sendmail (
ID INT AUTO_INCREMENT PRIMARY KEY,
tomail nvarchar(50),
subject nvarchar(50),
message text
)";
mysql_query($ctableSql,$con);
}
else
{
echo "有表";
}
die();?>页面显示:“没有表”,但执行一次后应该创建表了,我再刷新页面还是显示“没有表”,请各位大虾们帮忙看下神马问题?

解决方案 »

  1.   

       //判断是否有sendmail表
            $row=mysql_query("show databases");这是不对的,粗看一下,后面是判断库中是否已有某个表,对吧?SHOW TABLES FROM database_name  或者mysql_list_tables 函数列出库中的表
      

  2.   

    能给个判断是否有sendmail表的程序看看嘛?今天刚开始学,没头绪,谢各位大虾
      

  3.   

    试试:
            //连接数据
            $con=mysql_connect("localhost","root","welcome123") or die("无法连接数据库".mysql_error());
            //判断是否有my_project数据库
            $existDB=mysql_select_db("my_project",$con);
            //echo "没有my_project数据库";
            if(!$existDB)
            {
                //创建数据库
                $cdatabseSql="Create DATABASE my_project";
                mysql_query($cdatabseSql,$con);
                mysql_select_db("my_project",$con);  //选择数据库
            }
            else
            {
                echo "有数据库";
            }
            //判断是否有sendmail表
            $row=mysql_query("show tables");
            $database=array();
            $finddatabase="sendmail";
            while ($result=mysql_fetch_array($row,MYSQL_ASSOC))
            {
                $database[]=$result['Tables_in_test'];
            }
            unset($result,$row);
            
            if(!in_array($finddatabase,$database))
            {
                echo "没有表";    
                $ctableSql="Create TABLE sendmail (
                    ID INT AUTO_INCREMENT PRIMARY KEY,
                    tomail nvarchar(50),
                    subject nvarchar(50),
                    message text
                )";
                mysql_query($ctableSql,$con);
            }
            else
            {
                echo "有表";    
            }
            die();
      

  4.   

    大概这样试试,
            if(!$existDB)
            {
                //创建数据库
                $cdatabseSql="Create DATABASE my_project";
                mysql_query($cdatabseSql,$con);
            
                mysql_select_db("my_project",$con);//加一句,选择库
            }
    ……
    ……
            //判断是否有sendmail表        $row = mysql_list_tables("my_project");        $database=array();
            $finddatabase="sendmail";
            while ($result=mysql_fetch_array($row))
            {
                $database[]=$result[0];
            }
            unset($result,$row);
      

  5.   

    $database[]=$result['Tables_in_test'];
    这行报错,错误信息如下:
    有数据库
    Notice: Undefined index: Tables_in_test in D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\sendmail.php on line 36
    没有表
      

  6.   

    哦。库名搞错了。 $database[]=$result['Tables_in_my_project'];  //这样
      

  7.   

    选库我之前也加过,又试过,不起作用,我Create Database成功,但Create Table不行,又不报错,等大虾们帮忙看看
      

  8.   

    好了,可以了,多谢jordan102大哥,膜拜一下,呵呵,今天刚学,很多语法不熟,结贴给分