为什么我的SQL insert语句无法通过php脚本执行?

为什么我的SQL insert语句无法通过php脚本执行?,php,mysql,sql,syntax,syntax-error,Php,Mysql,Sql,Syntax,Syntax Error,在php脚本中,我尝试了几种不同的插入语句: $query = "INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ('$stringvar','$stringvar',$intvar,$decimalvar)"; $query = "INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ('".$stringvar."','

在php脚本中,我尝试了几种不同的插入语句:

$query = "INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ('$stringvar','$stringvar',$intvar,$decimalvar)";
$query = "INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ('".$stringvar."','".$stringvar."',".$intvar.",".$decimalvar.")";
$query = 'INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ("'.$stringvar.'","'.$stringvar.'",'.$intvar.','.$decimalvar.')';
$query = 'INSERT INTO table (charfield,charfield,intfield,decimalfield) VALUES ("'.$stringvar.'","'.$stringvar.'","'.$intvar.'","'.$decimalvar.'")';
我也使用了以下几种不同的方法:

mysql_real_escape_string($query);
mysql_query($query);
$result = @mysql_query($query);
我已经呼应了被连接的语句,它看起来很好。即使我将其复制并粘贴到phpmyadmin sql编辑器中,它也可以很好地执行。数据库是MySQL,用户拥有正确的权限

我做错了什么?
编辑:

使用
或die
的错误消息:

Access denied for user 'schaffins'@'localhost' (using password: NO)
我已经添加了一个具有选择、插入和更新权限的用户,在执行任何操作之前,我正在php中使用该用户进行连接


此外,我还可以插入到用同一脚本制作的另一个表中。

您不能在整个查询中使用
mysql\u real\u escape\u string
。这将转义作为查询语法一部分的引号。您需要对要插入到查询中的值使用它。

您不能对整个查询使用
mysql\u real\u escape\u string
。这将转义作为查询语法一部分的引号。您需要在要在查询中插入的值上使用它。

此问题与您的插入无关-错误是连接到数据库,因此它甚至无法运行insert语句


仔细检查要传递到mysql_connect()的凭据。。。从错误消息“拒绝用户'schaffins'@'localhost'(使用密码:否)的访问”中,似乎问题出在您的密码上

这个问题与您的insert无关-错误是连接到数据库,因此它甚至没有运行insert语句


仔细检查要传递到mysql_connect()的凭据。。。从错误消息“拒绝用户'schaffins'@'localhost'(使用密码:否)的访问”中,似乎问题出在您的密码上

有时数据库连接仅在某些操作和验证发生后发生。在尝试执行任何sql之前,请确保已打开连接。如果连接嵌套在If/else代码块中,则可能不满足条件,并且不会建立db连接


尝试查找数据库连接并移动(或复制)在php中的一个更“全球化”的位置,也就是php中的某个位置,确保数据库连接在任何if语句之前建立,这些if语句可能会根据不允许的条件排除连接,有时数据库连接仅在某些操作和验证发生后发生。在尝试执行任何sql之前,请确保已打开连接。如果连接嵌套在If/else代码块中,则可能不满足条件,并且不会建立db连接


尝试查找db连接,并将其移动(或复制)到php中更“全球化”的位置,也就是php中的某个位置,以确保在基于不允许的条件建立任何可能排除连接的if语句之前建立db连接。

是否启用了错误报告?还有,mysql\u error()返回了什么?当你说它失败时,你能给我们更多的信息吗?你的意思是它执行了,但没有插入任何内容,还是你得到了一个错误,如果是,错误消息是什么?mysql\u query($query)或die(mysql\u error()),它会告诉你出了什么问题。其他查询有效吗?您是否尝试过将此插件缩小为较小的插件?您是否尝试过用分号终止查询?“Table”是实际代码中表的实际名称,我假定。查看表定义可能会有所帮助,您输入到strfield的实际值也是如此。我还建议使用PDO而不是手动连接SQL(),这可能是一个愚蠢的问题,但是您已经在mysql_connect()中指定了密码,不是吗?因为它说你没有使用密码。。。仅供参考“@mysql_query($query);”前面的“@”正在抑制可能显示的错误消息。对生产很好,但对测试没有太大帮助!是否启用了错误报告?还有,mysql\u error()返回了什么?当你说它失败时,你能给我们更多的信息吗?你的意思是它执行了,但没有插入任何内容,还是你得到了一个错误,如果是,错误消息是什么?mysql\u query($query)或die(mysql\u error()),它会告诉你出了什么问题。其他查询有效吗?您是否尝试过将此插件缩小为较小的插件?您是否尝试过用分号终止查询?“Table”是实际代码中表的实际名称,我假定。查看表定义可能会有所帮助,您输入到strfield的实际值也是如此。我还建议使用PDO而不是手动连接SQL(),这可能是一个愚蠢的问题,但是您已经在mysql_connect()中指定了密码,不是吗?因为它说你没有使用密码。。。仅供参考“@mysql_query($query);”前面的“@”正在抑制可能显示的错误消息。对生产很好,但对测试没有太大帮助!我在几次跑步中都发表了评论,但没有什么不同。我在几次跑步中都发表了评论,但没有什么不同