Php mysql查询不';在函数中使用时不起作用
我有以下代码将数据放入mysql数据库:Php mysql查询不';在函数中使用时不起作用,php,mysql,sql,function,Php,Mysql,Sql,Function,我有以下代码将数据放入mysql数据库: $sql3 = "INSERT INTO $tableName (topic, title, date) VALUES ('$topic','$title','$today')"; mysql_query($sql3); 它工作得很好 但是,当我在函数中使用代码时,它就不起作用了。传递到函数中的参数在代码的其他地方使用,不应影响上述代码的操作 当我加上: if(mysql_errno()){ echo "MySQL error ".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>"; }
if(mysql_errno()){
回显“MySQL错误”。MySQL\u errno():“
.mysql_error()。“\n执行
\n$query\n
”;}
我得到一个错误:
MySQL错误1064:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解使用第1行的near'(主题、标题、日期)值('weather'、'It looking like fault is he')的正确语法
执行时
我不明白为什么在函数中使用代码时会出现SQL语法错误,而在函数本身使用代码时却不会出现SQL语法错误
提前感谢您的帮助。您的问题很可能与变量范围有关。例如:
$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
不再在范围内,因此查询变为:
插入(主题、标题、日期)值(“$topic”、“$title”、“$today”)
这显然是无效的
将
$tableName
传递给您的函数,将其硬编码到查询中,或者使用global
。但是,使用全局变量不是一个好主意。首先:请注意,如果这些变量是用户输入,则此代码极易受到攻击。其次:发布完整函数。请发布完整代码您的变量$tableName
可能是空的,可能是因为它超出了您函数的范围(如果不查看整个内容,就无法判断)。打开错误报告,您可能会看到PHP对此进行抱怨。始终在开发中:错误报告(E_ALL);ini_set('display_errors',1);
是的,这是一个范围问题。谢谢!