2012-04-05 10 views
0

Ich habe eine benutzerdefinierte Funktion erstellt, und ich erhalte diesen Fehler. Ich glaube nicht, dass es einen "Parse-Fehler" in meinem Skript gibt.Wie erstelle ich eine benutzerdefinierte Funktion in 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; 
} 
?> 

Der Zweck dieses Skript zu testen, ob ich eine Variable in einer SELECT-Anweisung verwenden können.

+0

was auf der Leitung 8 von test.php –

+0

in Ihrer SQL-Anweisung sicherstellen, dass die Saiten zu entkommen mit 'mysql_real_escape_string' – JimmyBanks

Antwort

6

Variablen sollten ein $ Präfix haben. so

function checkDBDuplicate(tableName, dbFieldName, variableName) { 

falsch ist, machen es

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

natürlich weiter auf dem gleichen wahr ist, so:

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

die gleiche Behandlung

+0

Ah danke. Es funktioniert jetzt. Ich dachte, ich mache nichts falsch, weil Javascript in den Funktionsparametern nicht "var" benötigt. – JohnSmith

+1

Überprüfen. Nur eine Bemerkung: 'var' bedeutet nicht "ich mache hier eine Variable"! Es wird nie wirklich benötigt, um eine Variable zu deklarieren, es bedeutet "diese Variable sollte global sein". Daher ist es logisch, dass es nicht in eine Funktion gehen sollte. Man könnte es mit dem PHP-Schlüsselwort "global" vergleichen, das auch nie in eine Funktionsdeklaration geht. Das '$' bedeutet "eine Variable beginnt hier" in PHP. Es gibt keine Entsprechung in Javascript, aber sicher nicht das 'var' Schlüsselwort :) – Nanne

3
function checkDBDuplicate(tableName, dbFieldName, variableName) { 

Sollte braucht sei

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

und ISIDE die Funktion Körper:

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

sollte Ihre Funktion wie folgt sein:

<?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

Die Variablen müssen nicht erneut zugewiesen werden !!!

Auch einige 'und `fehlen die SQL-Abfrage.

<?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; 
} 
?> 
Verwandte Themen