Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql查询不';在函数中使用时不起作用_Php_Mysql_Sql_Function - Fatal编程技术网

Php 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

我有以下代码将数据放入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);
是的,这是一个范围问题。谢谢!