2013-04-29 2 views
1

안녕하세요.이 오류가 발생했습니다. 문제가있는 것 같아서 눈을 깜박입니다.SQL 구문에 오류가 있습니다.

전체 오류 :

SQL 구문에 오류가 있습니다. 올바른 구문은 = 줄 ''img.png '근처'DESC = 'ittititi'가격 = '22 ', IMG를 사용하는 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

당신은 역 따옴표로 desc 같은 reserved words in MySQL을 탈출 할 필요가

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

DESC는 MySQL 서버 버전에 해당하는 설명서를 확인

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

0을 사용하지 않는 것이

 `desc` 

같은 MySQL을위한 예약 된 키워드

사용하여이 쿼리 네브라스카한다 열 이름으로; 그것은 키워드입니다. 열 이름으로 사용하는 경우 인용 부호를 사용해야합니다.

관련 문제