这是充当另一个 HTML 页面的“操作”的 PHP 代码,其中只有一个表单。
它没有显示任何错误,在我单击提交后出现消息“已创建数据库”,但它没有创建表“Simpsons”。为什么会这样?
请让我知道我是否应该提供更多详细信息或评论代码。
<?php
$database = 'basedados';
$username = 'root';
$password = '';
$first = $_POST['first'];
$last = $_POST['last'];
$phone = $_POST['phone'];
$mobile = $_POST['mobile'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web = $_POST['web'];
$con = mysql_connect(localhost, $username, $password);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE IF NOT EXISTS $database", $con)) {
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db($database, $con);
$create_table = "CREATE TABLE Simpsons
(
first varchar(15),
last varchar(15),
phone varchar,
mobile varchar,
fax varchar,
email varchar,
web varchar,
)";
$insert_values = "INSERT INTO Simpsons VALUES ($first','$last','$phone','$mobile','$fax','$email','$web')";
if (table_exists(Simpsons, $database)) {
mysql_select_db($database) or die("Unable to select database");
mysql_query($insert_values, $con);
} else {
mysql_select_db($database) or die("Unable to select database");
mysql_query($create_table, $con);
mysql_query($insert_values, $con);
}
function table_exists($table, $db) {
$tables = mysql_list_tables($db);
while (list ($temp) = mysql_fetch_array($tables)) {
if ($temp == $table) {
return TRUE;
}
}
return FALSE;
}
mysql_close($con);
?>
更新:
好的。谢谢你们。现在我的代码看起来更像这样:
<?php
$database = 'basedados';
$username = 'root';
$password = '';
$first = $_POST['first'];
$last = $_POST['last'];
$phone = $_POST['phone'];
$mobile = $_POST['mobile'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web = $_POST['web'];
$con = mysql_connect(localhost, $username, $password);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE IF NOT EXISTS $database", $con)) {
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
$create_table = "CREATE TABLE IF NOT EXISTS simpsons
(
first varchar(15),
last varchar(15),
phone varchar(15),
mobile varchar(15),
fax varchar(15),
email varchar(15),
web varchar(15)
)";
$insert_values = "INSERT INTO simpsons VALUES ('$first','$last','$phone','$mobile','$fax','$email','$web')";
mysql_select_db($database, $con) or die("Unable to select database: " . mysql_error());
mysql_query($create_table, $con) or die("Error creating table: " . mysql_error());
mysql_query($insert_values, $con) or die("Error inserting values: " . mysql_error());
mysql_close($con);
?>
我认为它看起来更干净,虽然我不确定我是否正确使用了 mysql_error()
函数。
再次感谢。
最佳答案
一个逗号太多,你需要指定varchar-fields的长度
CREATE TABLE Simpsons
(
first varchar(15),
last varchar(15),
phone varchar(xx),
mobile varchar(xx),
fax varchar(xx),
email varchar(xx),
web varchar(xx)
)
关于php - 为什么不创建表 Simpsons?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124266/