2013-05-06 3 views
0

아래 코드 (option = 'title')와 같은 문자열을 where 조건으로 설정했을 때 실행되지 않는 간단한 mysqli 쿼리가 있는데, 대신 정수를 사용하면 (id = 1) 작동합니다! 여기 간단한 WHERE 절의 SELECT 문을 사용하는 MySQLi 오류

코드입니다 :

$db_name = "gp"; 
$db_username = "root"; 
$db_pass = ""; 
$db_host = "localhost"; 
$mysqli = new mysqli($db_host, $db_username, $db_pass, $db_name); 
mysqli_report(MYSQLI_REPORT_ERROR); 

if($sql_title = $mysqli->query("SELECT value FROM options WHERE option='title' LIMIT 1")){ 
    if($sql_title->num_rows > 0){ 
     $row_title = $sql_title->fetch_object(); 
     $title = $row_title->value; 
     echo $title; 
    } 
    else 
     echo "No Title!"; 
} 
else 
    echo $mysqli->error; 

$mysqli->close(); 

내 데이터베이스 구조

-------------------------- 
| id | option | value | 
-------------------------- 
| 1 | title | hello | 
| 2 | image | logo.jpg | 

오류 SCREAM (!) : mysqli :: 쿼리() : 경고 무시 오류 억제 (42000/1064) : SQL 구문에 오류가 있습니다. 올바른 구문을 찾으려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 'option ='title 'LIMIT 1'줄 1의 C : \ Wamp \ www \ test.php에있는 줄 9

답변

0

option는 MySQL의 예약어, 당신은 역 따옴표에 넣어해야합니다.

if($sql_title = $mysqli->query("SELECT value FROM options WHERE `option`='title' LIMIT 1")){ 
+0

대단히 고맙습니다. – sandrows

0

optionkeyword in MySQL. 당신이 열 식별자로 사용하려면, 항상 역 따옴표로 묶어야해야합니다 :

SELECT value FROM options WHERE `option`='title' LIMIT 1