Im试图将某些值输入到db表中,尽管它正在执行,但并不是所有的值都被填充。
我将跳过一些部分,因为这并不是因为我没有连接等等,问题是,虽然我是通过并与数据库通信,但在信息上传上,只有某些字段被填充。
例如,
我的“用户名/密码”字段在db中具有相同的值,因此我不确定为什么要填充一个字段,而另一个字段不是.
但是这里有一些code..theres,所以我要复制/粘贴重要的部分
the html for example is
<input type="text" name="uname" id="uname" value="Enter Desired Username"/><br/>
<input type="text" name="upass" id="upass" value="Enter Desired Password"/><br/>
etc...you know same old htmlphp,连接,等等。
变量
$c2d = "the db connection here";
$userName = mysql_real_escape_string($_POST['uname']);
$userPass = mysql_real_escape_string($_POST['upass']);//我在这里设置了所有的vars,但这是有问题的。
$addDetails2DbQueryS = "INSERT INTO accounts (appUname, appUpass)VALUES('$userName','$userPass')";
$addDetails2DbQueryS = "INSERT INTO accounts (appUname, appUpass) VALUES('$userName','$userPass')";//在这里执行一些检查,比如正在创建的帐户是否已经存在等等。这也起作用了
然后,当一切正常时,将该帐户添加到im使用以下命令的db中
$addDetails2DbQuerySDoIt = mysqli_query($c2d, $addDetails2DbQueryS) or die("error [003] could not add acc to db" . mysqli_error);所发生的事情是,用户名被记录,但是密码字段是空的。
知道我做错了什么吗?我很高兴和谦卑地感谢你的帮助。谢谢
发布于 2012-06-15 17:26:50
你使用了错误的转义函数..。您使用的是来自mysql_real_escape_string扩展的ext/mysql,但实际上是使用MySQLi扩展来插入,所以您应该使用其函数mysqli_real_escape_string的版本。
使用一个DB驱动程序或另一个DB驱动程序,而不是同时使用:-)
实际上,我希望您获得两个值的false,因为如果您没有与mysql_connect建立db连接,则调用mysql_real_escape_string应该返回false并生成一个waring:
MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个链接,就好像mysql_connect()是在没有参数的情况下调用的。如果没有找到或建立连接,则会生成E_WARNING级别错误。
如果您已经建立了一个mysql_connect()连接,那么我希望您的mysqli_query()会失败,因为您从未与mysqli_connect()建立连接。
我认为,一旦您选择了3个DB驱动程序中的一个,并且只使用其中一个驱动程序的类/函数,那么大部分问题都会被删除:
PDO (我最喜欢的,优雅,相当容易使用,更容易移植代码的差异。db if needed)MySQLi (提供了最佳的MySQL特定特性,但对于use)ext/mysql (在可能的情况下避免类似瘟疫)来说更笨重。
https://stackoverflow.com/questions/11055339
复制相似问题