2012-04-05 126 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; 
} 
?> 
相關問題