PHP创建了mysql表,但也给出了“Table not created”错误

时间:2013-12-01 11:20:48

标签: php mysql sql

我有以下脚本在mysql数据库中创建表

$dbhost = 'localhost';
$dbuser = 'root';
$con = "mysql_connect($dbhost, $dbuser, '')";
$create=mysql_query("CREATE TABLE `$table_name` (ID int NOT NULL AUTO_INCREMENT KEY,high TEXT ,low TEXT ,Divergence TEXT ,Change_Percent TEXT ,Low_Price TEXT ,High_Price TEXT ,Low_Proximity TEXT ,Vol_Index TEXT ,Vol TEXT ,Purchase_Value TEXT)");

                    if (mysql_query($con,$create))
                        {
                        echo "Table created successfully";
                        }
                    else
                        {
                        echo "Error creating table: " . mysql_error($conn);
                        }

执行脚本会创建所需的表,但它也会出现以下错误

Warning: mysql_query() expects parameter 2 to be resource, boolean given in C:\xampp\htdocs\test\test.php on line 136
Error creating table:

现在根据我的意思,这意味着$ create返回“FALSE”,如果没有创建表,情况就是这样,但是在这种情况下表已经创建了,那么它是什么呢?以及如何阻止此错误?

4 个答案:

答案 0 :(得分:1)

您正在运行$create次查询两次。试试这个:

 if ($create)
 {
    echo "Table created successfully";
 }

答案 1 :(得分:1)

您为mysql_query()提供了第二个参数,导致错误。另外,您在$con中拼错了mysql_error()。请改用此代码:

$dbhost = 'localhost';
$dbuser = 'root';
$con = mysql_connect($dbhost, $dbuser, ''); // error: string instead of function
$create=mysql_query("CREATE TABLE `$table_name` (ID int NOT NULL AUTO_INCREMENT KEY,high TEXT ,low TEXT ,Divergence TEXT ,Change_Percent TEXT ,Low_Price TEXT ,High_Price TEXT ,Low_Proximity TEXT ,Vol_Index TEXT ,Vol TEXT ,Purchase_Value TEXT)");

                    if ($create) // error: second mysql_query()
                        {
                        echo "Table created successfully";
                        }
                    else
                        {
                        echo "Error creating table: " . mysql_error($con); // error: misspelled con
                        }

答案 2 :(得分:0)

条件应该是

                    if ($create)
                    {
                    echo "Table created successfully";
                    }
你已经运行了查询 而你再次点击mysql_query($con,$create)

答案 3 :(得分:0)

您的连接不是连接,它是一个字符串:

$con = "mysql_connect($dbhost, $dbuser, '')";

尝试创建真正的连接:

$con = mysql_connect($dbhost, $dbuser, '');

您还在运行mysql_query两次。第一个是没有连接参数。尝试运行一次。连接应该是第二个,而不是第一个参数:

$create = "CREATE TABLE ...";
if (mysql_query($create, $con)) {