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

如何在PHP中正确创建自定义函数?,php,mysql,function,variables,Php,Mysql,Function,Variables,我已经创建了一个自定义函数,我得到了这个错误。我认为我的脚本中没有“解析错误” Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in C:\wamp\www\web template\test.php on line 8 此脚本的目的是测试我是否可以在SELECT语句中使用变量。变量应具有$前缀。所以 function checkDBDuplicate(tableName, dbFiel

我已经创建了一个自定义函数,我得到了这个错误。我认为我的脚本中没有“解析错误”

Parse error: syntax error, unexpected ',', expecting '&' or T_VARIABLE in C:\wamp\www\web template\test.php on line 8



此脚本的目的是测试我是否可以在SELECT语句中使用变量。

变量应具有
$
前缀。所以

function checkDBDuplicate(tableName, dbFieldName, variableName) {
是错的,去做吧

function checkDBDuplicate($tableName, $dbFieldName, $variableName) {
显然,更进一步地说,这是正确的,因此:

$tableName = tableName;
$dbFieldName = dbFieldName;
$variableName = variableName;
需要同样的治疗

function checkDBDuplicate(tableName, dbFieldName, variableName) {
应该是

function checkDBDuplicate($tableName, $dbFieldName, $variableName) {
和iside功能体:

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

您的函数应该如下所示:

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

无需再次分配变量

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

test.phpin第8行的内容请确保使用
mysql\u real\u escape\u string对字符串进行转义
Ah谢谢。它正在工作。我认为我没有做错什么,因为Javascript在function parameters.Check中不需要“var”。只是一句话:“var”并不意味着“我在这里做一个变量”!实际上不需要声明变量,这意味着“这个变量应该是全局的”。因此,逻辑上它不应该放在函数中。您可以将其与php关键字“global”进行比较,后者也从不进入函数声明。
$
在php中表示“变量从这里开始”。Javascript中没有等价物,但肯定没有
var
关键字:)
<?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;
}
?>