2013-04-14 3 views
0

Я получаю нуль в $booked_num, я попробовал запрос в SQL со значениями вместо переменных, он работал нормально. Но я не знаю, где я делаю ошибку, пожалуйста, помогите. Я уже повторил каждую переменную, и все в порядке, но ничего нет в $booked_row и $booked_num эхо нуль.Выбор MySQL-запроса через переменные PHP

require_once 'mysql_connector.php'; 
$booked_result = mysql_query('select * from booked where train_no = ".$train_no." and date = ".$date." and st_from = ".$st_from." and st_to = ".$st_to.";') or die(mysql_error()) ; 
$booked_num = mysql_num_rows($booked_result); 
echo $booked_num; 
$booked_row = mysql_fetch_array($booked_result,MYSQL_ASSOC); 
print_r($booked_row); 
+0

Вы смешиваете одиночные и двойные кавычки. Вы не можете начинать строку с одной цитатой и заканчивать ее двойной кавычкой. – lanzz

+0

Я бы избегал использовать 'mysql_ *' функции, а с 'PHP 5.5.0' они устарели. Вам следует рассмотреть возможность использования ['mysqli' или' PDO'] (http://www.php.net/manual/en/mysqlinfo.api.choosing.php). – jleft

ответ

2
$booked_result = mysql_query('select * from booked where train_no = ".$train_no." and date = ".$date." and st_from = ".$st_from." and st_to = ".$st_to.";') or die(mysql_error()) ; 

Этот синтаксис неверен - вам нужно закрыть строку перед тем конкатенации переменных. Что-то вроде:

$booked_result = mysql_query('select * from booked where train_no = "' .$train_no. '" and date = "' .$date. '" and st_from = "' .$st_from. '" and st_to = "' .$st_to. '";') or die(mysql_error()); 

Кроме того, следует рассмотреть вопрос о переходе в библиотеку PDO. Помимо прочего, это поможет вам избежать атак с SQL-инъекциями в ваших запросах.

+0

Спасибо большое @SamDufel !! На самом деле нужно сделать проект по резервированию железных дорог и буквально сыт по горло работой с двух последних дней. Может ли кто-нибудь помочь мне с концепциями этих цитат в sql_query и php-скрипте? Еще раз спасибо! :) – 2013-04-14 16:03:17

+1

@ code.atodi Прочитайте документацию здесь: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single и здесь: http: // www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double. Кроме того, ** НЕ используйте ** функции 'mysql_ *', они устарели, используйте 'mysqli_ *' или PDO. – Uby

+1

@ code.atodi - справочная страница php на строках содержит несколько приятных примеров и подробный обзор функций. http://php.net/manual/en/language.types.string.php Если есть что-то конкретное, вы не понимаете, вы можете отправить еще один вопрос об этом. Кроме того, я настоятельно рекомендую вам использовать редактор с подсветкой синтаксиса - это значительно упростит, если вы цитируете что-то неправильно. –