Php 奇怪的MySQL问题

Php 奇怪的MySQL问题,php,mysql,database,insert,Php,Mysql,Database,Insert,所以我使用mysql查询浏览器设置了一个表,现在我正在尝试填充它。但无论我做什么,它都会说“成功创建了帐户”,但没有任何内容被添加到数据库中 我的代码如下: ` if($connection) { $out= “我们正在处理您的请求,请稍候。”; mysql\u选择\u数据库( “账户”, $connection ); //生成帐号。 $AccountNumber=兰特(17000904870); //设置帐户值。 $GenuineUser=0; $VerifiedAdvertiser=0; $

所以我使用mysql查询浏览器设置了一个表,现在我正在尝试填充它。但无论我做什么,它都会说“成功创建了帐户”,但没有任何内容被添加到数据库中

我的代码如下:

`
if($connection)
{
$out=
“我们正在处理您的请求,请稍候。

”; mysql\u选择\u数据库( “账户”, $connection ); //生成帐号。 $AccountNumber=兰特(17000904870); //设置帐户值。 $GenuineUser=0; $VerifiedAdvertiser=0; $DateOfBirth= $邮政[“bmoth”]。“/”$邮政[“bday”]。“/”$邮政[“byear”]; //MD5帐户ID。 $AccountID=md5($_POST[“AccountID”]); //创建广告客户帐户。 mysql\u查询( “插入帐户。广告商”( “账号”, “帐户ID”, “名字”, “姓”, “出生日期”, “电子邮件地址”, “电话号码”, "街道地址",, "城市",, “邮政编码”, “国家”, “国家”, “真正用户”, “已验证广告客户”)值( “$AccountNumber。”, “$_POST[“AccountID”]。”, “$_POST[“FirstName”]。”, “$\u POST[“LastName”]。”, “$DateOfBirth.”, “$\u POST[“EmailAddress”]。”, “$_POST[“PhoneNumber”]。”, “$”邮政[“街道地址”]。”, “$”邮政[“城市”]。”, “$”邮政[“ZipCode”]。”, “$_POST[“State”]。”, “$”邮政[“国家”]。”, “$GenuineUser”。”, “$VerifiedAdvertiser。”) "); //设置广告表。 //假设已成功创建帐户。 $out= “已创建广告客户帐户。

”; } 其他的 { 死('Oh,@#%#!:'.mysql#u error()); } mysql_close($connection); } 其他的 { //否则,显示形式。 } ?>
`

有人能帮我解决一下吗?如果有任何帮助,我将不胜感激

多谢各位

更新 所以,多亏了你的建议,我已经设法弄清楚了接下来会发生什么:)结果,它不起作用,因为我在列名之间使用了空格(即帐户ID应该是AccountID)。所以我只是从表列和php代码中删除了空格


谢谢大家的帮助

您确实应该检查查询中的错误。甚至一些基本的东西,比如:

mysql_query($query) or die(mysql_error());
任何时候你做一个mysql函数,你都应该检查错误,或者有一个捕捉异常的方法(如果使用一个合适的接口,因为默认的mysql函数不会抛出异常)

它可能会在几点上搞砸


另外,作为提示,
sprintf
在编写查询时工作得非常出色。

您的SQL查询中有一个错误。你得到“帐户创建”,因为你没有测试它

所以,多亏了你的建议,我已经设法弄清楚了接下来会发生什么:)结果,它不起作用,因为我在列名之间使用了空格(即帐户ID应该是AccountID)。所以我只是从表列和php代码中删除了空格


谢谢大家的帮助

将查询放在单独的变量中,打印/回显它,然后尝试从phpmyadmin或mysql控制台运行查询。另外,检查错误。在紧要关头,您可以执行mysql\u查询($query)或死亡(mysql\u error());然后将错误打印出来给您。还请注意,您发布的代码中存在大量漏洞。你们真的应该使用预先准备好的语句,或者至少对任何进入你们的查询中的不可信的输入…有更新的答案来解释什么是错误的谢谢!我在第2行得到了一个错误,即检查有效语法,因此我意识到可能是查询顶部的单引号(在值之前),所以我删除了单引号。然后,我得到了另一个错误,同样的事情:“您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以便在第2行“Number、Account ID、First Name、Last Name、Date”附近使用正确的语法”是否可能是因为名称之间的空格(即Account ID等)?问题已解决!这是列名之间的空格。这很奇怪,因为MySQL查询浏览器允许我使用空格,就像电子表格一样。哦,现在我知道了。现在它工作了,是时候让它安全了!!!:)谢谢你的帮助,Codeacula!:-)你是说,用“而不是”吗?:)谢谢你,麦克塞尔!显然,查询浏览器会为您更正它。并使用`而不是',但我也会确保检查`作为SQL清理的一部分,并根据需要进行处理,因为'mysql_escape_string()'没有意识到这一点。我已经解决了这个问题。谢谢你的帮助:)
mysql_query($query) or die(mysql_error());