2015-01-19 3 views
-1
function sched_exists($cl_id, $teacher_id, $student_id) { 
    $cl_id; 
    $teacher_id; 
    $student_id; 
    return (mysql_result(mysql_query("SELECT COUNT(`sched_id`) FROM `sched` WHERE `class_id` = '$cl_id' AND `teacher_id` = '$teacher_id' AND `stduent_id` = '$student_id'"), 0) == 1) ? true : false; or die(mysql_error()); 
} 

Не могли бы вы рассказать мне, действительно ли мой код? Я получаю эту ошибкуПередача множественных аргументов функции

Parse error: syntax error, unexpected 'or' (T_LOGICAL_OR) in C:\xampp\htdocs\GradingExpress\admin\core\functions\users.php on line 4"

+0

** Опасность **: Вы используете [** устаревшие ** API базы данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (HTTP : //php.net/manual/en/mysqlinfo.api.choosing.php). Вы, вероятно, уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

Dang! Пожалуйста, не связывайте вызовы функции, подобные этому, это делает ваш код не-человеческим синтаксическим анализом ... (равно как и машинный синтаксический анализ, очевидно :) – RandomSeed

+0

@RandomSeed, так что вы предлагаете? –

ответ

0

Вы or die() после запятой, не допускается. Вы можете удалить это, mysql_error быть не может.

return (mysql_result(mysql_query("SELECT COUNT(`sched_id`) FROM `sched` WHERE `class_id` = '$cl_id' AND `teacher_id` = '$teacher_id' AND `stduent_id` = '$student_id'"),0)==1) ? true : false; 
+0

Что о моем месте где? это нормально? –

+0

@AlbertSaludaga: есть только опечатка в 'stduent_id' (это должно быть, вероятно,' student_id'), никакой другой проблемы не видно. – panther

+0

ОК Спасибо за вашу помощь! –

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