2011-05-25 53 views
0

嗨 我有两个MySQL问题Mysql的问题 - Mysql的获取数组并添加到数据库

一)我在为什么这个代码不会将数据添加到我的数据库困惑:

$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,number)VALUES('56','Name ','number')'at line 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结果资源...。

是的,数据在数据库中也存在..

任何想法??

感谢您的帮助:) 尼尔

+2

'你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以找到正确的语法,以便在...附近使用......您省略了之后的重要部分。 – AndersTornkvist 2011-05-25 19:39:59

回答

1

一)你真的应该已经包含了完整的错误,但我相当肯定的语法错误是,你试图将列的名称用单引号,这是不允许的。你应该使用反引号(键盘上的键“1”左侧):

$sql="INSERT INTO Table (`adder`, `username`) 
VALUES('$myusername','$username1')"; 

二)再次,包括完整的错误。当mysql_query函数失败时会发生此警告,因为$result只是false值,而不是MySQL资源。当你得到那个错误时,$username的值是多少?这很可能是导致查询无效的原因。

+0

我即将发布相同的东西。 – Dereleased 2011-05-25 19:53:49

+0

我把上面的完整的错误 – Niall 2011-05-26 20:00:51

0

你应该说 “INSERT INTO TABLE`Add`(`adder`,`username`)”

,并添加应在反引号(')括起来,因为它可能是一个保留字,你不该不要这样命名。