Mysql问题 - Mysql获取数组并添加到数据库中

时间:2011-05-25 19:35:10

标签: php mysql

您好 我有两个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服务器版本对应的手册,以便在'添加(usernamename附近使用正确的语法,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结果资源。

是的,数据库上还有数据......

任何想法??

感谢您的帮助:) 尼尔

2 个答案:

答案 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应该用反引号(`)括起来,因为它可能是一个保留字,你不应该像这样命名一个表。