2012-04-05 128 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; 
} 
?> 

这个脚本的目的是测试如果我能在SELECT语句中使用的变量。

+0

是什么在你的SQL语句的test.php – 2012-04-05 12:37:34

+0

的8号线确保逃生使用字符串'mysql_real_escape_string' – JimmyBanks 2012-04-05 12:43:48

回答

6

变量应该有一个$前缀。所以

function checkDBDuplicate(tableName, dbFieldName, variableName) { 

是错误的,让

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

明显,进一步在同为真,那么:

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

需要同样的待遇

+0

啊谢谢。现在正在工作。我以为我没有做错任何事情,因为JavaScript在函数参数中不需要“var”。 – JohnSmith 2012-04-05 12:51:59

+1

检查。只是一句话:'var'并不意味着“我在这里做一个变量”!实际上从不需要声明一个变量,这意味着“这个变量应该是全局的”。所以它是合乎逻辑的,它不应该在功能上。你可以将它与php关键字“global”进行比较,它也永远不会进入函数声明。 '$'的意思是“一个变量从这里开始”在PHP中。在Javascript中没有等价物,但肯定不是'var'关键字:) – Nanne 2012-04-05 13:04:16

3
function checkDBDuplicate(tableName, dbFieldName, variableName) { 

应该是

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

和iside函数体:

$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; 
} 
?> 
相关问题