php - SQL 语法有问题

标签 php mysql sql syntax

我不断收到此错误:

Query1 失败:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“d41d8cd98f00b204e9800998ecf8427e”“d41d8cd98f00b204e9800998ecf8427e”、“d41d8cd”附近使用正确的语法

这是我正在使用的代码:

 <?php

     $payment = $_GET['payment'];
     if($payment){
include("connection.php");
$CardHolder = md5($_POST["CardHolder"]);
$CardType = md5($_POST["CardType"]);
$CardNumber = md5($_POST["CardNumber"]);
$SecurityCode = md5($_POST["SecurityCode"]);
$ExpiryDate = md5($_POST["ExpiryDate"]);
$PurchaseID = $_SESSION['purchaseid'];
$Email = $_SESSION['user'];

$sql = "INSERT INTO Payment (CardHolder, CardType, CardNumber, SecurityCode, ExpiryDate, PurchaseID, Email) VALUES (\"$CardHolder\", \"$CardType\", , \"$CardNumber\" \"$SecurityCode\", \"$ExpiryDate\", \"$PurchaseID\", \"$Email\")";
$result = mysqli_query($con, $sql) or die('Query1 failed: ' . mysqli_error($con));;

if($result){
    echo "<p>Your Payment has been Accepted. You are now being redirected to the to the HomePage.</p>
      <meta http-equiv=\"refresh\" content=\"1;URL=index.php\" />";

     } else {
         echo "<p>Payment Failed, Please try again later.</p>";
     }
}

      ?>

我不确定我做错了什么。提前感谢您的支持。

编辑:使用提供的答案后,我现在收到此错误 Query1 失败:列计数与第 1 行的值计数不匹配。只是为了让你们知道我有一个 PaymentID,即 Auto INCREMENT。

最佳答案

我相信你的逗号放错了位置(2 在 CardType 之后,0 在 CardNumber 之后)。

\"$CardType\", , \"$CardNumber\" \"$SecurityCode\",

话虽如此,您会受到 SQL 注入(inject)攻击,并且有更好的方法使用准备好的语句和绑定(bind)参数进行插入。使用this作为起点。

关于php - SQL 语法有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829288/

相关文章:

PHPExcel:如何获得单元格颜色

php - 在 Laravel 中测试时,数据库事务不会阻止 id 递增

php - 关闭浏览器会阻止 PHP 脚本完成执行吗?

php - Mysql结果显示在php循环中

mysql - 在 MySQL 中使用序列号和空格对重复值进行分组

SQL 错误 : ORA-00918: column ambiguously defined

php - 将 SQL 数据库中的数据显示为拓扑

javascript - 在 php 中使用下拉菜单排序和检索数据

php - Mysql如何根据条件分组?

mysql - mysql用逗号分割字符串