2012-04-05 12 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

mysql_real_escape_string' –

+0

の8行目にするものです。それは今働いている。私はJavascriptが関数のパラメータに "var"を必要としなかったので、私は間違って何もしていないと思った。 – JimmyBanks

答えて

6

変数には、接頭辞$が必要です。そう

function checkDBDuplicate(tableName, dbFieldName, variableName) { 

は間違っている、さらに同じで、それは明らかに

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

作るので、本当である:

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

+0

ああはあなたに感謝 '使用して文字列をエスケープしてくださいあなたのSQL文でtest.phpを – JohnSmith

+1

を確認してください。ちょうど発言: 'var'は "私はここに変数を作っている"という意味ではありません!変数を宣言する必要は決してありません。つまり、「この変数はグローバルでなければなりません」という意味です。したがって、それは論理的には機能しないはずです。これをphpキーワード "global"と比較することもできます。これは決して関数宣言には入りません。 '$'はPHPで "ここから始まる変数"を意味します。 Javascriptには同等のものはありませんが、確かに 'var'キーワードではありません:) – Nanne

3
function checkDBDuplicate(tableName, dbFieldName, variableName) { 

同じ治療を必要とするべきですbe

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; 
} 
?> 
関連する問題