您好 我有两个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服务器版本对应的手册,以便在'添加(username
,name
附近使用正确的语法,number
)第1行的值('56','名称','数字')'
在您提出之前,是的,数据是
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结果资源。
是的,数据库上还有数据......
任何想法??
感谢您的帮助:) 尼尔
答案 0 :(得分:1)
a)你真的应该包含完整的错误,但我很确定语法错误是你试图将列的名称放在单引号中,这是不允许的。您应该使用反引号(键盘上“1”左侧的键):
$sql="INSERT INTO Table (`adder`, `username`)
VALUES('$myusername','$username1')";
b)同样,请包含完整错误。当mysql_query
函数失败时会发出该警告,因为$result
只是值false而不是MySQL资源。当你收到错误时$username
的价值是多少?这可能是导致查询无效的原因。
答案 1 :(得分:0)
你应该说“INSERT INTO TABLE`Add`(`adder`,`username`)”
和Add应该用反引号(`)括起来,因为它可能是一个保留字,你不应该像这样命名一个表。