【发布时间】:2016-02-21 00:19:39
【问题描述】:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[42000]: 语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 MariaDB 服务器版本,用于在 ''1235'='1235' 附近使用正确的语法 WHERE username='wafflezzz'' at line 1' in /home/wafflez3/public_html/Project SA 主题/ipn/set.php:14 堆栈 跟踪:#0 /home/wafflez3/public_html/Project SA 主题/ipn/set.php(14): PDOStatement->execute() #1 {main} 抛出 /home/wafflez3/public_html/Project SA Theme/ipn/set.php 在第 14 行
当我使用此代码将空值更改为值时出现该错误。
<?php session_start(); require "../pdo_connect.php"; $usrname = $_SESSION["username"]; ?>
<title>Loading...</title>
<?php
$checker = $conn->prepare("SELECT * FROM transactions WHERE payer_user=:username AND success='1'");
$checker->bindParam(":username", $usrname);
$checker->execute();
while ($row = $checker->fetch(PDO::FETCH_BOTH)) {
$paidscript = $row["item_name"];
$sql = $conn->prepare("UPDATE us SET :script=:script WHERE username=:userr");
$sql->bindParam(":userr", $usrname);
$sql->bindParam(":script", $paidscript);
$sql->execute();
echo "You can now view the script!";
}
【问题讨论】:
-
你确定不是
$sql = $conn->prepare("UPDATE us SET script=:script WHERE username=:userr");? -
这一行 $sql = $conn->prepare("UPDATE us SET :script=:script WHERE username=:userr");从脚本列名中删除“:”
-
它的 :script 因为我想获取脚本名,如果你将脚本名设置为脚本名,那么我的系统就可以工作,那么你就有了脚本。我认为它很愚蠢,但这就是我所做的。脚本名也有一列
-
简单:你不能这样做
SET :script它被称为绑定列。 -
你为什么不只是有一个名为
scriptname的字段并在其中包含脚本名称?