0

我有以下代码将数据放入 mysql 数据库:

$sql3 = "INSERT INTO $tableName (topic, title, date) VALUES ('$topic','$title','$today')";
mysql_query($sql3);

它完美地工作。

但是,当我在函数中使用代码时,它不起作用。传递给函数的参数在代码的其他地方使用,不应影响上面代码的操作。

当我添加:

if(mysql_errno()){     
echo "MySQL error ".mysql_errno().": "          
.mysql_error()."\n<br>When executing <br>\n$query\n<br>"; }

我得到错误:

MySQL 错误 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '(topic, title, date) VALUES ('weather','It looks like Autumn is he' 附近使用正确的语法

我无法弄清楚为什么在函数中使用代码时会出现 SQL 语法错误,但在单独使用代码时却没有。

感谢您提前提供帮助。

4

1 回答 1

0

您的问题很可能与变量范围有关。例如:

$myVar = "Hello!";

// Outputs Hello!

echo $myVar;

function sayHello() {
    // $myVar is no longer in scope because we are "inside" the function.
    echo $myVar;
}

// undefined variable $myVar
sayHello();

当您在函数中执行查询时,变量$tablename不再在范围内,因此您的查询变为:

INSERT INTO (topic, title, date) VALUES ('$topic','$title','$today')

这显然是无效的。

传递$tableName给您的函数,将其硬编码到查询中或使用global. 但是,使用全局变量并不是一个好主意。

于 2013-10-20T13:30:51.563 回答