【发布时间】:2017-03-30 18:37:41
【问题描述】:
我正在尝试更新我的表格行但无法成功。
这是即将发生的错误。
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'Current_date = '2017-03-30', Content = 'This is first notification te' 附近使用正确的语法
这是我的代码
if(!empty($_FILES) || isset($_FILES['Details_file'])){
$filetmp = $_FILES["Details_file"]["tmp_name"];
$filename = $_FILES["Details_file"]["name"];
$filetype = $_FILES["Details_file"]["type"];
$filepath = "notification/".$filename;
move_uploaded_file($filetmp, $filepath);
echo $_POST['post_date'];
$stmt = $con1->prepare("UPDATE notification SET
Current_date = '".$_POST['post_date']."',
Content = '".$_POST['Content']."',
File_name= '".$filename."',
File_path ='".$filepath."',
Apply_link = '".$_POST['apply_now']."',
Last_date = '".$_POST['Last_date']."'
WHERE id = '".$_POST['fetch_id']."'") or die(mysqli_error($con1));
$stmt->execute();
$stmt->close();
}
任何人都可以在这里告诉我我的代码有什么问题。
【问题讨论】:
-
你应该使用 Mysqli 准备好的语句,如果你不想使用准备好的语句,请尝试使用 mysqli_real_escape,因为你的变量的格式是把它扔掉
-
mysqli_real_escape_string()不是防止 SQL 注入攻击的保险@clearshot66 OP 应该绑定它们的变量。 -
@JayBlanchard 我知道。我实际上说过他们应该使用准备好的语句,但如果他们不打算转换为它们,至少使用转义字符串。
-
他们使用了一个准备好的语句,他们只是没有绑定他们的变量@clearshot66