if(isset($id)){
$qry = "insert into user_to_birds(user_id,tax_id)values( 1 ,'.$id .') ";
$result = mysql_query($qry);
}
我已连接到数据库,但查询无效。
为什么它不起作用?我怎么能纠正它?
答案 0 :(得分:1)
if(isset($id)){
$qry = "insert into user_to_birds(user_id, tax_id)values('1','$id') ";
$result = mysql_query($qry);
}
像魅力一样工作。
答案 1 :(得分:1)
我认为你的单引号应该是双引号:
$qry = "insert into user_to_birds(user_id,tax_id )values( 1 ,".$id .") ";
您在PHP中将字符串与SQL中的字符串混淆(诚然,这很容易)。
答案 2 :(得分:1)
如何在这里插入一篇好文章
http://www.w3schools.com/php/php_mysql_insert.asp
INSERT INTO table_name(column1,column2,column3,...) VALUES(value1,value2,value3,...)
//不确定这是否会产生影响我会在tax_id和值之间尝试空格(
另外,我不确定你做的方式是否错误,但我会写得像这样
if(isset($id))
{
$qry = "insert into user_to_birds (user_id, tax_id)
values( '1' ,'".$id ."') ";
$result = mysql_query($qry);
}
看看字符串连接也要么 “''”。$ variable。“'''; 以那种方式
答案 3 :(得分:1)
正如其他人所说,看起来你的查询中没有正确使用字符串连接。尝试将您的查询更改为:
$qry = "INSERT INTO user_to_birds (user_id,tax_id) VALUES ( 1 ,'$id') ";
另一种可能性是你的$ id变量没有设置。尝试在执行isset()检查之前打印出变量,这将告诉您是否需要查看代码中的较早点。
最后,我建议你看一下mysqli函数而不是mysql。
答案 4 :(得分:1)
不要以这种方式创建查询。它非常容易受到SQL注入的攻击。 请改用预先准备好的声明。准备好的语句是预编译的,因此不会受SQL注入。
$id = 99;
$tax = 8;
$stmt = $mysqli->prepare("insert into user_to_birds(user_id,tax_id)values(?,?)"));
$stmt->bind_param("ii", $user, $tax);
$stmt->execute();
.. work on it ..
$stmt->close();
ii代表两个整数。在绑定的第一部分之后,告诉您使用哪种类型的变量,可以将这些变量的值添加到语句中。这些值将使用此方法自动转义。