如何在PHP中正确创建自定义函数?

时间:2012-04-05 12:35:59

标签: php mysql function variables

我创建了一个自定义函数,但是我收到了这个错误。我不认为我的脚本中存在“解析错误”。

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语句中使用变量。

4 个答案:

答案 0 :(得分:6)

变量应该有$前缀。所以

function checkDBDuplicate(tableName, dbFieldName, variableName) {

错了,搞定

function checkDBDuplicate($tableName, $dbFieldName, $variableName) {
显然,进一步如此,所以:

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

需要相同的治疗

答案 1 :(得分:3)

function checkDBDuplicate(tableName, dbFieldName, variableName) {

应该是

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

并在函数体内:

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

答案 2 :(得分: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;
}
?>

答案 3 :(得分: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;
}
?>