PHP MySQL - 无法删除脚本的某些部分

标签 php mysql

我有一个奇怪的问题。

基本上我有一个用户可以注册的页面。该信息被发送到 MySQL 数据库并在那里进行存储。在页面上完成任何工作之前,如果表已经存在,我想要一个简短的脚本来更改。如果它不存在,它将被创建,如果它存在,则继续下一个任务。

但是,由于某种原因,如果删除“报告结果”部分,我会收到错误(请参阅下面的脚本)。我想删除它的原因基本上是因为用户不需要知道刚刚创建了一个表。

为什么我不能在不出现错误的情况下删除这部分?

<?php

$table       =     "database";

$servername      =  "xxx";
$username    =  "xxx";
$password    =  "xxx";
$dbname              =  "xxx";

// Connect to database
$conn = new mysqli($xxx, $xxx, $xxx, $xxx);

// Create table if it does not exist
$sql = "CREATE TABLE IF NOT EXISTS $table (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        example-1VARCHAR(30) NOT NULL,
        example-2 VARCHAR(30) NOT NULL,
        example-3 VARCHAR(50),
        example-4 VARCHAR(50),
        example-5 VARCHAR(50),
        reg_date TIMESTAMP
        )";

// Report result <---------------------- PROBLEM HERE
if ($conn->query($sql) === TRUE) {
    echo "Table created successfully";
    } else {
    echo "Error creating table: " . $conn->error;
}

// Insert data into table
if (isset($_POST["submit"])) {

    $example-1      =   $_POST['example-1'];
    $example-2      =   $_POST['example-2'];
    $example-3      =   $_POST['example-3'];
    $example-4      =   $_POST['example-4'];
    $example-5      =   $_POST['example-5'];

    // Check if already exist in table
    $query = "SELECT * from $table where email ='$example-3'";

    if ($result=mysqli_query($conn,$query))

        {
            if(mysqli_num_rows($result) > 0) {

            // If already exist in table
            echo "Already exists";

        } else

            // If doesn't exist, add to table
            $sql = "INSERT INTO $table (example-1, example-2, example-3, example-4, example-5)
            VALUES ('".$example-1."', '".$example-2."', '".$example-3."', '".$example-4."', '".$example-5."')";

            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully";
            }

        } else

        // If everything fails for technical reason 
        echo "Query Failed.";

}

$conn->close();

?>

最佳答案

在删除“报告结果” block 时,您必须至少保留这部分:$conn->query($sql);。否则根本不会创建表..

根据 @chris85 注释,变量名称不得包含减号 - 请参阅 PHP Manual Language Reference Variables Basics

语句$example-2执行数学运算为$example减二,因此如果$example = 5则结果为 3..这是你不想要的。

更好的变量名称是 $example_2$example2

关于PHP MySQL - 无法删除脚本的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609328/

相关文章:

php - PayPal IPN 总是返回 "INVALID"

PHP:计算重复项并删除重复行

php - fatal error : Uncaught exception 'Zend_Db_Table_Exception'

php - 将多个数组插入数据库时​​出现问题

javascript - 在 Laravel 的 Blade 模板中链接 CSS/JS

PHP 从同一列中选择多个项目以在页面中呈现

php - MySQL数据库客户端下载

php - mysqli->query 在更新时返回 true,但没有行受影响

mysql - Ruby on Rails - 如何将一个模型中的外键值显示给另一个模型

MySQL - 插入触发器后不运行更新查询?