我有以下代码将数据放入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服务器版本对应的手册,以便在'(主题,标题,日期)附近使用正确的语法VALUES('天气','看起来像秋天是他'在第1行 执行时
我无法弄清楚为什么在函数中使用代码时会出现SQL语法错误,而不是在它自己的时候出现错误。
先谢谢你的帮助。
答案 0 :(得分: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
。但是,使用全局变量并不是一个好主意。