我有一个简单的mysqli查询,当我将where条件设置为类似下面代码的字符串(option ='title')时无法运行,但是如果我使用整数(id = 1)它可以工作! / p>
这是代码:
$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 :: query():( 42000/1064):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在第9行的C:\ wamp \ www \ test.php第1行的'option ='title'LIMIT 1'附近使用正确的语法
答案 0 :(得分:0)
option
是keyword in MySQL。如果要将其用作列标识符,请确保始终将其括在反引号中:
SELECT value FROM options WHERE `option`='title' LIMIT 1
答案 1 :(得分:0)
option
是mysql中的保留字,你必须把它放在反引号中。
if($sql_title = $mysqli->query("SELECT value FROM options WHERE `option`='title' LIMIT 1")){