Php 如果表不存在,则在表单提交上创建新的SQL表
我不熟悉php和SQL,所以这可能是一个简单的问题,但我在网上找不到任何好的来源 当有人提交表单时,我试图创建一个SQL表,这就是我目前所拥有的Php 如果表不存在,则在表单提交上创建新的SQL表,php,sql,forms,mysql,Php,Sql,Forms,Mysql,我不熟悉php和SQL,所以这可能是一个简单的问题,但我在网上找不到任何好的来源 当有人提交表单时,我试图创建一个SQL表,这就是我目前所拥有的 include("dbstufflive.php"); $cxn = mysqli_connect($host,$user,$passwd,$dbname) or die("Couldn't connect to server"); $sql = "CREATE TABLE IF NOT EXIST
include("dbstufflive.php");
$cxn = mysqli_connect($host,$user,$passwd,$dbname)
or die("Couldn't connect to server");
$sql = "CREATE TABLE IF NOT EXISTS `$company` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`company_name` varchar(80) NOT NULL,
`contact` varchar(50) NOT NULL,
`email` varchar(80) NOT NULL,
`phone` varchar(13) NOT NULL,
... (long list of table data)
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ";
mysqli_query($cxn,$sql);
我当然会用这张桌子做其他的事情,但我想我已经控制了大部分
问题是,该语句实际上并没有创建我的表:(当我按原样输入SQL语句时,它在phpadmin中工作,而且在脚本运行时也没有错误。因此,它经历了所有这些,以及更多的过程,似乎工作正常,但表根本没有出现
如果需要的话,我可以提供更多的代码,但我不想在这里粘贴过多的代码
提前感谢社区的任何帮助
编辑:
我使用了错误的DBinfo…哇,我不是很聪明。您的SQL语句看起来不错-从外观上看,您缺少登录凭据。一种有效的方法是:
// Add this line
require_once('config.php');
// Then change the variables below to pull your credentials from that file.
$cxn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD)
or die("Couldn't connect to server");
$sql = "CREATE TABLE IF NOT EXISTS `$company` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`company_name` varchar(80) NOT NULL,
`contact` varchar(50) NOT NULL,
`email` varchar(80) NOT NULL,
`phone` varchar(13) NOT NULL,
... (long list of table data)
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ";
mysqli_query($cxn,$sql);
然后在同一目录中创建一个名为config.php的新文件。将您的凭据放入:
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'username');
define('DB_PASSWORD', 'your_password');
define('DB_DATABASE', 'database_name');
?>
您应该检查mysqli_查询的结果(据我所知,它在失败时返回false)。有关详细信息,请参阅,您可以阅读“创建表不返回结果集”,但在成功/失败时返回True/false 例如:
if (!mysqli->query($cxn,$sql)) {
printf("Error: %s\n", mysqli_error($cxn));
}
您在浏览器中运行时是否遇到错误?您的登录凭据存储在哪里?从您提供的代码来看,它没有显示您的$host、$user等正在声明我已经拥有了所有这些,我只是不想发布它,但谢谢您。我将编辑我的帖子,这样更明显好,我是个白痴。我忘了我有两个不同的数据库(现场和本地)我用错了…/手腕。@james:哈哈,真的发生了。很高兴你修好了。我这么做了,我得到了“1”的回报,我认为这是真的。如果它有效,你应该找到你的表。如果没有,你可能不会使用你认为正在使用的数据库连接。