php - 使用 MySQL 和 PHP 时出现 SQL 语法错误

标签 php mysql

我正在尝试做一件事,但我遇到了一个问题。我已经尝试了所有我知道的,但我是MySQL的新手, 所以我走进了死胡同。

这段代码:

<?php
    require('cfg.php');
    mysql_connect($server, $user, $pass) or die(mysql_error());
    mysql_select_db($database) or die(mysql_error());

    if (isset($_GET['name'])){
        $name = $_GET['name'];
    }
    else
        if (isset($_POST['submit'])){
            $name = $_POST['name'];
            $name1 = $_POST['name1'];
            $name2 = $_POST['name2'];
            $name3 = $_POST['name3'];
            mysql_query("INSERT INTO data (name, name1, name2, name3) VALUES($name, $name1, $name2, $name3 ) ") or die(mysql_error());
            echo ("Data entered successfully!");
        }
?>

<html>
    <head>
        <title>Random giffgaff simmer</title>
    </head>
    <body>
        <form action="" method="post">
            <p>Your Username: <input type="text" name="name"></p>
            <p>Username 1: <input type="text" name="name1"></p>
            <p>Username 2: <input type="text" name="name2"></p>
            <p>Username 3: <input type="text" name="name3"></p>
            <p>Username 4: <input type="text" name="name4"></p>
            <p>Username 5: <input type="text" name="name5"></p>
            <p>Username 6: <input type="text" name="name6"></p>
            <p><input type="submit" name="submit" value="Submit"></p>
        </form>
    </body>
</html>

带来这个错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' )' at line 1

现在,这会告诉我这个 SQL 代码有一个语法错误:

INSERT INTO data (name, name1, name2, name3) VALUES($name, $name1, $name2, $name3 )

但我不认为我能看到一个?

最佳答案

您还没有引用您的查询。你应该像这样引用每个字段

INSERT INTO data (name, name1, name2, name3) VALUES('$name', '$name1', '$name2', '$name3' )

作为对 TheCommonSense 的致敬,我提供了一个 mysqli 版本,使用正确的准备语句来保证数据安全

$db = new mysqli(...);
$stmt = $db -> prepare("INSERT INTO data (name, name1, name2, name3) VALUES(?, ?, ?, ?)");
$stmt -> bind_param("ssss", $name, $name1, $name2, $name3);
$stmt -> execute();
$db -> close()

关于php - 使用 MySQL 和 PHP 时出现 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963367/

相关文章:

php - 使用变量从mysql获取数据

php - 在 Mysql 中存储 Unixtime

javascript - 将变量传递给 Ajax 请求客户资料详细信息

php - Mysql Join 没有在 Php 中获取完整数据

php - 用于防止使用相同标签重新标记相同照片/项目的 SQL

php - 在循环中使用 curl 从数据库中获取的数字向客户端发送数据

PHP/MySQL : Insert data into database character set problem

mysql - 查询如何为每行 MySQL 乘以 2 个单元格?

mysql - SELECT AND INSERT QUERY into multiple table with conditions

php - 防止自引用表中的主键和外键重复