Php 无法在数据库中创建表
我正在用PHP编写一个简单的表单,获取输入并将其插入数据库,我成功地创建了一个数据库,但没有创建一个表。我对数据库使用Xampp。 以下是我创建表的代码:Php 无法在数据库中创建表,php,sql,database,Php,Sql,Database,我正在用PHP编写一个简单的表单,获取输入并将其插入数据库,我成功地创建了一个数据库,但没有创建一个表。我对数据库使用Xampp。 以下是我创建表的代码: mysqli_select_db($DBconnect, $DBname); $TableName = "Bugtrack"; $SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' "; if ($stmt = mysqli_prepare(
mysqli_select_db($DBconnect, $DBname);
$TableName = "Bugtrack";
$SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' ";
if ($stmt = mysqli_prepare($DBconnect, $SQLstring)) {
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
if (mysqli_stmt_num_rows($stmt) == 0) {
mysqli_stmt_close($stmt);
$SQLstring = "CREATE TABLE" . $TableName . "(BugID SMALLINT
. NOT NULL AUTO_INCREMENT PRIMARY KEY,
. Game VARCHAR(10), Version VARCHAR(5),
Platform VARCHAR(10), Frequency VARCHAR(5),
proposed_solution TINYTEXT)";
if ($stmt = mysqli_prepare($DBconnect, $SQLstring)) {
$QueryResult = mysqli_stmt_execute($stmt);
if ($QueryResult === FALSE) {
echo "<p>Unable to create the table.</p>"
. "<p>Error code "
. mysqli_errno($DBConnect)
. ": " . mysqli_error($DBConnect)
. "</p>";
}
mysqli_stmt_close($stmt);
}
}
}
mysqli_select_db($DBconnect,$DBname);
$TableName=“错误跟踪”;
$SQLstring=“显示类似“”的表$表名。"' ";
如果($stmt=mysqli\u prepare($DBconnect,$SQLstring)){
mysqli_stmt_execute($stmt);
mysqli_stmt_store_结果($stmt);
如果(mysqli_stmt_num_rows($stmt)==0){
mysqli_stmt_close($stmt);
$SQLstring=“创建表”。$TableName。”(BugID SMALLINT
.非空自动增量主键,
.Game VARCHAR(10),Version VARCHAR(5),
平台VARCHAR(10),频率VARCHAR(5),
建议的解决方案(TINYTEXT)”;
如果($stmt=mysqli\u prepare($DBconnect,$SQLstring)){
$QueryResult=mysqli\u stmt\u execute($stmt);
if($QueryResult==FALSE){
echo“无法创建表。”
.“错误代码”
.mysqli_errno($DBConnect)
.mysqli_错误($DBConnect)
.“”;
}
mysqli_stmt_close($stmt);
}
}
}
尝试回显$SQLstring并在mysql控制台中运行查询。它将为您指出查询的确切问题
$SQLstring=“CREATE TABLE”$表名。“(BugID SMALLINT
到$SQLstring=“CREATE TABLE”。$TableName。”(BugID SMALLINT
如果您使用的是XAMPP,请使用webbrowser转到localhost/phpmyadmin。 选择数据库,然后选择sql 创建您的表
CREATE TABLE Bugtrack (
BugID INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
Game VARCHAR(10), Version VARCHAR(5),
Platform VARCHAR(10),
Frequency VARCHAR(5),
proposed_solution TINYTEXT
)
如果你真的想用php,我会用PDO
$username = 'me';
$password = 'my_super_secret_password';
$dsn = 'mysql:host=localhost;dbname=my_database';
$conn = new PDO($dsn, $username, $password);
$sql = 'CREATE TABLE Bugtrack (
BugID INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
Game VARCHAR(10), Version VARCHAR(5),
Platform VARCHAR(10),
Frequency VARCHAR(5),
proposed_solution TINYTEXT
)';
$conn->execute($sql);
或
转到localhost/phpmyadmin,单击左侧的数据库。您将看到一个创建表的选项。我还将确保您对所创建的数据库具有权限。要做到这一点,当您在phpmyadmin中时,单击您的数据库,选择几乎位于页面顶部的特权选项卡。从那里只需执行以下操作:查看提示。我认为这是因为句点位于
创建表中的“
内。这将创建无效查询mysqli\u错误的输出可能会给您一个关于问题根源的强烈提示。您是否尝试过”“$TABLE\u name.”“
”,并尝试在表中留出空间“
我认为这也会导致错误