2016-01-26 4 views
-1

что тут неправильно ????что не так в этом коде mysql

У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи «DESC из материалов» в строке 1

это код

<?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); ?> 
+5

добавить 'обратно-tick' у вас есть столбец с именем' desc'. "select \' desc \ 'from materials where code = 123" – roullie

+1

'desc' является зарезервированным словом, в основном потому, что это ключевое слово в сортировке' order by x desc', так как вы выбрали зарезервированное слово для этого имени столбца у вас есть 2 варианта. 1) предпочтительный oprion, используйте другое имя для этого столбца и 2) оберните имя столбца - обратные элементы 'select \' desc \ 'из материалов, где code = 123' – RiggsFolly

+0

Третий вариант заключается в том, чтобы квалифицировать ссылку на имя столбца с помощью tablename или псевдоним таблицы. Например: ** 'select materials.desc из материалов где' ** – spencer7593

ответ

1

Вы использовать зарезервированные слова, поэтому нужно бежать ,

select `desc` from materials where code = 123 

Некоторые объекты в MySQL, в том числе базы данных, таблицы, индекса столбца , псевдоним, вид, хранимые процедуры, перегородки, табличного и другие имена объектов известны в качестве идентификаторов. Этот раздел описывает допустимый синтаксис для идентификаторов в MySQL. Section 9.2.2, “Identifier Case Sensitivity”, описывает, какие типы идентификаторов чувствительны к регистру и при каких условиях.

Идентификатор кавычки является обратный апостроф («'»):

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

Идентификатор может быть кавычках или без. Если идентификатор содержит специальных символов или зарезервированное слово, вы должны указывать его каждый раз, когда вы ссылаетесь на него. (Исключение: зарезервированное слово, которое следует за периодом в , квалифицированное имя должно быть идентификатором, поэтому его не нужно указывать.) Зарезервированные слова перечислены в Section 9.3, “Keywords and Reserved Words ".

Не рекомендуется использовать зарезервированные слова.

-1

Прежде всего, вы не выбрали ни одну базу данных для выполнения запросов. Добавьте эту строку для выбора базы данных после 6-й строки:

else echo "connected successfully";

$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 
+0

что вы смешиваете' mysqli_' и 'mysql_'? –

Смежные вопросы