2012-04-05 3 views
0

Я создал пользовательскую функцию, и я получаю эту ошибку. Я не думаю, что в моем скрипте есть «ошибка синтаксического анализа».Как правильно создать пользовательскую функцию в PHP?

Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in C:\wamp\www\web template\test.php on line 8 

<?php 
require('global script/php/dbConnect.php'); 

$varName = 'sd'; 

echo checkDBDuplicate('account_list', 'memberID', $varName); 

function checkDBDuplicate(tableName, dbFieldName, variableName) 
{ 
    $tableName = tableName; 
    $dbFieldName = dbFieldName; 
    $variableName = variableName; 

    $searchDuplicate = mysql_query(' 
     SELECT $dbFieldName 
     FROM $tableName 
     WHERE $dbFieldName = $variableName 
     ') or die(mysql_error()); 
    $countRow = mysql_num_rows($searchDuplicate); 

    return $countRow; 
} 
?> 

Цель этого сценария, чтобы проверить, могу ли я использовать переменную в ЗЕЬЕСТ.

+0

что находится на 8-ой строке test.php –

+0

в вашем SQL заявление убедитесь, чтобы избежать строки с помощью 'mysql_real_escape_string' – JimmyBanks

ответ

6

Переменные должны иметь префикс $. так

function checkDBDuplicate(tableName, dbFieldName, variableName) { 

неправильно, сделать его

function checkDBDuplicate($tableName, $dbFieldName, $variableName) { 

, очевидно, в дальнейшем то же самое верно, так:

$tableName = tableName; 
$dbFieldName = dbFieldName; 
$variableName = variableName; 

нуждается в такой же режим

+0

Ах спасибо. Теперь работает. Я думал, что не делаю ничего плохого, потому что Javascript не нуждается в «var» в параметрах функции. – JohnSmith

+1

Проверьте. Просто замечание: «var» не означает «я делаю переменную здесь»! Это никогда не требуется для объявления переменной, это означает, что «эта переменная должна быть глобальной». Поэтому логично, что он не должен входить в функцию. Вы можете сравнить его с ключевым словом php «global», который также никогда не входит в объявление функции. «$' Означает, что переменная начинается здесь »в php. В Javascript нет эквивалента, но, разумеется, не ключевое слово 'var' :) – Nanne

3
function checkDBDuplicate(tableName, dbFieldName, variableName) { 

РЕКОМЕНДУЕМЫМ be

function checkDBDuplicate($tableName, $dbFieldName, $variableName) { 

и ИСИДЕ тело функции:

$tableName = $tableName; 
$dbFieldName = $dbFieldName; 
$variableName = $variableName; 
1

Ваша функция должна выглядеть так:

<?php 
require('global script/php/dbConnect.php'); 

$varName = 'sd'; 

echo checkDBDuplicate('account_list', 'memberID', $varName); 

function checkDBDuplicate($tableName, $dbFieldName, $variableName) { 
    $tableName = $tableName; 
    $dbFieldName = $dbFieldName; 
    $variableName = $variableName; 
    $searchDuplicate = mysql_query(" 
    SELECT $dbFieldName 
    FROM $tableName 
    WHERE $dbFieldName = $variableName 
    ") or die(mysql_error()); 
    $countRow = mysql_num_rows($searchDuplicate); 
    return $countRow; 
} 
?> 
0

переменные не должны быть назначены снова !!!

Также в некоторых случаях «и» отсутствует запрос SQL.

<?php 
require('global script/php/dbConnect.php'); 

$varName = 'sd'; 

echo checkDBDuplicate('account_list', 'memberID', $varName); 

function checkDBDuplicate($tableName, $dbFieldName, $variableName) { 

    $searchDuplicate = mysql_query(" 
         SELECT `$dbFieldName` 
         FROM `$tableName` 
         WHERE `$dbFieldName` = '$variableName' 
         ") or die(mysql_error()); 
    $countRow = mysql_num_rows($searchDuplicate); 
    return $countRow; 
} 
?>