我真的不知道我做错了什么。所有其他查询(SELECT-queries)工作没有任何问题,但这似乎不起作用。有什么想法吗?
<?php
session_start();
$host="*******"; // Host name
$username="*******"; // Mysql username
$password="*******"; // Mysql password
$db_name="*******"; // Database name
$from = $_GET['from'];
$to = $_GET['to'];
// Connect to server and select databse.
$con = mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name",$con)or die("cannot select DB");
mysql_query("INSERT INTO message('from', 'to', 'message', 'confirm') VALUES (2,3,'would like to add you as a friend',1)");
echo'The request has been sent.';
答案 0 :(得分:4)
您正在使用from,to作为您的字段名称的保留字。用反引号逃避它们,而不是引号。
mysql_query("INSERT INTO message(`from`, `to`, `message`, `confirm`) VALUES (2,3,'would like to add you as a friend',1)");
查看MySQL保留字here
的完整列表答案 1 :(得分:3)
您需要反向勾选名为“from”和“to”的列,或将列重命名为非保留字。这将会咬你和其他任何人在屁股上永远查询这张桌子,所以我倾向于重命名。
`from`, `to`
请向众神做出承诺,你永远不会将列命名为db或再保留一个mysql保留字。
答案 2 :(得分:1)
根据经验,在查询结束时始终使用内置函数or die(mysql_error());
,这将以明文形式输出查询中的实际问题,所以在您自定义它之前,请执行此操作。在这种情况下,请将代码更改为
mysql_query("INSERT INTO message('from', 'to', 'message', 'confirm') VALUES (2,3,'would like to add you as a friend',1)") or die(mysql_error());
这些是:
$con = mysql_connect("$host", "$username", "$password")or die(mysql_error());
mysql_select_db("$db_name",$con)or die(mysql_error());
然后您将看到问题所在。
答案 3 :(得分:1)
检查某些消息栏上是否有唯一索引。