Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP创建了mysql表,但也给出了;“未创建表格”;错误_Php_Mysql_Sql - Fatal编程技术网

PHP创建了mysql表,但也给出了;“未创建表格”;错误

PHP创建了mysql表,但也给出了;“未创建表格”;错误,php,mysql,sql,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

我使用以下脚本在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”,如果表未创建,则会出现这种情况,但是在这种情况下,表已创建,那么是什么使其成为布尔值呢?我怎样才能阻止这个错误???

条件应该是

                    if ($create)
                    {
                    echo "Table created successfully";
                    }
您已经运行了查询
您再次使用了
mysql\u查询($con,$create)

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

$con = "mysql_connect($dbhost, $dbuser, '')";
请尝试创建真正的连接:

$con = mysql_connect($dbhost, $dbuser, '');
您还运行了两次
mysql\u查询。第一个没有连接参数。试着运行一次。连接应该是第二个参数,而不是第一个参数:

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

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

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

您为
mysql\u query()
提供了第二个参数,这会导致错误。另外,您在
mysql\u error()
中拼错了
$con
。请改用此代码:

$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
                        }

$con=“mysql\u connect($dbhost,$dbuser,”)
正在分配
$con
字符串
mysql\u connect(…)
@Gumbo Yes,这是一个需要重新校准的字符串,因为最初我会得到一个错误,说
mysql\u query()希望参数1是字符串,资源是在我将其改为字符串时提供的。好的,谢谢大家,所有问题最终都解决了,正如大多数答案中所述,我在
$create
中运行了两次create命令,一次在
if(mysql\u query($con,$create))
中运行了一次,您没有向
mysql\u query
提供第二个参数。在这种情况下,PHP将使用
mysql。默认\u host
而不是
$dbhost
。当我创建$create字符串时,我得到一个错误,说
期望参数是resource,string gived
,同样的错误是$con给出一个错误,说
期望参数是string,resource gived
,谢谢,修复了它!