问题描述
||
你好
我有两个MySQL问题
a)我对为什么此代码不会向我的数据库添加数据感到困惑:
$con = mysql_connect(\"localhost\",\"username\",\"password\");
mysql_select_db(\"database\",$con);
$sql=\"INSERT INTO Table (\'adder\',\'username\')
VALUES(\'$myusername\',\'$username1\')\";
mysql_query( $sql,$con ) or trigger_error( mysql_error( $con ),E_USER_ERROR );
这是完整的错误:\“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以找到在\'Add(username
,name
,number
)VALUES(\'56 \ ',\'Name \',\'number \')\'在第1行
在您问之前,是的,数据在那里
b)我在使用mysql_fetch_array时遇到问题
这是代码:
mysql_connect(\"$host\",\"$mysqlusername\",\"$password\")or die(\"cannot connect\");
mysql_select_db(\"$db_name\")or die(\"cannot select DB\");
$sql = \"SELECT * FROM Add WHERE adder=\\\"$username\\\"\";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
if (empty($row)) {
echo \"$username hasn\\\'t added anyone\";
}
else {
while($row = mysql_fetch_array($result)){
echo \"<a href=\\\"/\".$row[username].\"><\".$row[username].\"</a>\";
}
}
这里的错误是:
警告:mysql_fetch_array():提供的参数不是有效的MySQL结果资源。
是的,数据也存在于数据库中。
有任何想法吗??
谢谢您的帮助 :)
尼尔
解决方法
a)您确实应该包括完整的错误,但是我相当确定语法错误是您试图将列名放在单引号中,这是不允许的。您应该改用反引号(键盘上\“ 1 \”左侧的键):
$sql=\"INSERT INTO Table (`adder`,`username`)
VALUES(\'$myusername\',\'$username1\')\";
b)同样,请包括完整错误。当mysql_query
函数失败时会发生该警告,因为$result
只是值false而不是MySQL资源。出现此错误时,$username
的值是什么?可能是某种原因导致查询无效。
,您应该已经说过“将表插入Add((adder,username))”。
和Add应该用反引号(`)括起来,因为它可能是保留字,并且您不应该这样命名表。