<?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();?>页面显示:“没有表”,但执行一次后应该创建表了,我再刷新页面还是显示“没有表”,请各位大虾们帮忙看下神马问题?
$row=mysql_query("show databases");这是不对的,粗看一下,后面是判断库中是否已有某个表,对吧?SHOW TABLES FROM database_name 或者mysql_list_tables 函数列出库中的表
//连接数据
$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();
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);
这行报错,错误信息如下:
有数据库
Notice: Undefined index: Tables_in_test in D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\sendmail.php on line 36
没有表