2013-04-29 105 views
1

嗨即时通讯运行到这个错误,我似乎不能看到问题,所以任何想法,新的眼睛可能会帮助。你的SQL语法错误

完整错误:

您的SQL语法错误;检查对应于你的MySQL服务器版本的手册正确的语法使用近“DESC =” ittititi“价格= '22' ,IMG =‘img.png’在行” 1

<?php 
// Include MySQL class 
require_once('../inc/mysql.php'); 
// Include database connection 
require_once('../inc/global.inc.php'); 
// Include functions 
require_once('../inc/functions.inc.php'); 
// Start the session 
session_start(); 
?> 
<?php 

// try to create a new record from the submission 
$genre = mysql_real_escape_string($_REQUEST['genre']); 
$title = mysql_real_escape_string($_REQUEST['title']); 
$desc = mysql_real_escape_string($_REQUEST['desc']); 
$price = mysql_real_escape_string($_REQUEST['price']); 
$img= mysql_real_escape_string($_REQUEST['img']); 

if (!empty($genre) && !empty($title) && !empty($desc) && !empty($price) && !empty($img)) { 

    // here we define the SQL command 
    $query = "SELECT * FROM books WHERE title='$title'"; 

    // submit the query to the database 
    $res=mysql_query($query); 

    // make sure it worked! 
    if (!$res) { 
    mysql_error(); 
    exit; 
    } 

    // find out how many records we got 
    $num = mysql_numrows($res); 
    if ($num>0) { 
    echo "<h3>That book title is already taken</h3>\n"; 
    exit; 
    } 

    // Create the record 
    $query = "INSERT INTO books SET genre='$genre', title='$title', desc='$desc', price='$price', img='$img'"; 
    $res = mysql_query($query)or die(mysql_error()); 
    if (! $res) { 
    echo mysql_error(); 
    exit; 
    } else { 
    echo "<h3>Book Created</h3>\n"; 
    echo $_SESSION['title']=$title; 
    } 
} 
?> 


<form name="newbook" method="post"> 
<table border=0> 
<tr> 
    <td>Genre:</td> 
    <td><input type=text name='genre'></td> 
</tr> 

<tr> 
    <td>Title:</td> 
    <td><input type=text name='title'></td> 
</tr> 

<tr> 
    <td>Description:</td> 
    <td><input type=text name='desc'></td> 
</tr> 

<tr> 
    <td>Price:</td> 
    <td><input type=number name='price'></td> 
</tr> 
<tr> 
    <td>Image:</td> 
    <td><input type=text name='img'></td> 
</tr> 

    <tr> 
     <td colspan=2> 
     <input type=submit value="Create my account"> 
     </td> 
    </tr> 
    </table> 
    </form> 

回答

4

你需要逃避reserved words in MySQLdesc与反引号

INSERT INTO books 
SET genre = '$genre', title = '$title', `desc` = '$desc' 
             ^----^-----------------here 
1

递减是为MySQL保留关键字

使用它像

 `desc` 

这必须您甲肾上腺素查询

$query = "INSERT INTO books SET genre='$genre', title='$title', `desc`='$desc', price='$price', img='$img'"; 
1

不要使用desc作为列名;它是一个关键字。如果您将它用作列名称,则必须引用它。

相关问题