这个mysql代码有什么问题

时间:2016-01-26 02:15:32

标签: php mysql

这里有什么不对吗????

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'desc from materials'附近使用正确的语法

这是代码

<?php
$serverName ="localhost";
$dbname="inventory";
$conn = mysql_connect($serverName,"root","");
if(!$conn) die("Connection error". mysql_connect_error());
else echo "connected successfully";
$desc = mysql_query("select desc from materials where code = 123",$conn ) or  die (mysql_error());
mysql_close($conn); ?>

2 个答案:

答案 0 :(得分:1)

你正在使用保留字,所以需要逃避。

select `desc` from materials where code = 123
  

MySQL中的某些对象,包括数据库,表,索引,   列,别名,视图,存储过程,分区,表空间和   其他对象名称称为标识符。本节介绍   MySQL中标识符的允许语法。 enter image description here,描述了哪些类型的标识符   区分大小写,在什么条件下。

标识符引号字符是反引号(“`”):

mysql> SELECT * FROM `select` WHERE `select`.id > 100;
  

标识符可以引用或不引用。如果标识符包含   特殊字符或是保留字,必须随时引用   你指的是它。 (例外:在一段时间后的保留字   限定名称必须是标识符,因此不需要引用。)   保留字列在Section 9.2.2, “Identifier Case Sensitivity”   词语”。

建议不要使用保留字。

答案 1 :(得分:-1)

首先,您尚未选择任何数据库来执行查询。添加此行以在第6行之后选择数据库:

  

否则回声&#34;成功连接&#34 ;;

$dbconn = mysql_select_db( $dbname , $conn);
if (!$db_conn) {
   die ('Can\'t use this database: ' . $dbname . mysql_error());
}
$desc = mysql_query("select `desc` from materials where code = 123",$conn ) or  die (mysql_error());
//desc is a reserved keyword in mysql, so you ought to put it between the ` symbol