在我的php脚本中,我使用了一个sql查询来创建表,但是在创建表之后,每次后续的刷新都会返回一条错误消息,声明表已经创建。我知道它已经创建了,但是如果它已经运行了,我如何在刷新时停止查询的第二次运行?
php脚本:
<?php
include_once ".env.php";
include_once "template.php";
html_top('School Database');
// open connection
$conn = mysqli_connect(host,username,password,database_name);
// verify connection
if (!$conn)
exit("<p class='error'>Connection Error: " . mysqli_connect_error() . "</p>");
// create table
$sql = "create table students2 (
id int not null auto_increment,
first varchar(20),
last varchar(20),
dob date, primary key (id))";
$create = mysqli_query($conn,$sql);
if ($create)
echo "Created";
else
echo "Error creating table: " . mysqli_error($conn);
html_bottom();发布于 2021-11-13 03:45:30
DDL命令,如create table,应该在一个单独的文件中,该文件在初始化步骤中只被调用一次。这是避免错误的正式方式。
另一种可能有帮助但效率不高的方法是使用:CREATE TABLE IF NOT EXISTS Students2(....)。
// create table
$sql = "create table if not exists students2 (
id int not null auto_increment,
first varchar(20),
last varchar(20),
dob date,
primary key (id))";发布于 2021-11-13 05:18:34
当使用多个create或alter tables命令时,或者在经常使用或刷新的页或函数中使用它们时,这是一个逻辑错误。在您的情况下,有许多解决方案,但完美的解决方案是将创建命令与其他代码分开。
或者您可以在创建任何表格时使用(如果存在),因为guys回答了您的问题。
https://stackoverflow.com/questions/69951243
复制相似问题