2017-02-25 106 views
-2

我在下面的代碼中有這個錯誤。請告訴我我的錯誤。你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的手冊,在''soft_name'附近使用正確的語法。

錯誤

你有一個錯誤的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以在''soft_name','soft_ver','soft_size','sdesc','slink'附近使用正確的語法VALUES('h','','','在線 '' 1

代碼

<?php 
$sname=$_POST['name']; 
if (!empty($_POST['ver'])) $ver=$_POST['ver']; else $ver=" "; 
if (!empty($_POST['ssize'])) $ssize=$_POST['ssize']; else $ssize=" "; 
if (!empty($_POST['description'])) $desc=$_POST['description']; else $desc=" "; 
if (!empty($_POST['link'])) $slink=$_POST['link']; else $slink=" "; 

mysql_select_db('1027593',mysql_connect('','','')); 
$qry="INSERT INTO downloads ('soft_name', 'soft_ver', 'soft_size', 'sdesc', 'slink') VALUES ('".$sname."', '".$ver."', '".$ssize."', '".$desc."', '".$slink."')"; 
mysql_query($qry); 
echo mysql_error(); 
die(); 
?> 
+0

你對SQL注入是開放的。請使用準備好的語句和PDO MySQL庫以避免將來出現問題。 – Hidde

+0

您的報價不正確,您在雙引號內使用雙引號(而不是轉義)。使用單引號爲您的變量名稱,並採取@Hidde的建議和使用PDO :) – danidee

回答

0

更改查詢

$qry="INSERT INTO downloads ('soft_name', 'soft_ver', 'soft_size', 'sdesc', 'slink') VALUES ('".$sname."', '".$ver."', '".$ssize."', '".$desc."', '".$slink."')"; 

$qry="INSERT INTO downloads (`soft_name`, `soft_ver`, `soft_size`, `sdesc`, `slink`) VALUES ('".$sname."', '".$ver."', '".$ssize."', '".$desc."', '".$slink."')"; 

您的錯誤是您在字段名稱中添加單引號('),並且它不允許在sql字段中。

希望這個解決方案對你有所幫助

+0

非常感謝。 我真的解決了這個問題,問題是我用desc作爲列名,這是一個保留字,我改成了sdesc,但仍然沒有工作,所以我將它改爲描述。現在它正在工作。 –

相關問題