在sql php函数中插入查询

时间:2013-05-26 22:21:47

标签: php mysql sql insert

我是php的初学者,我在插入查询中遇到问题

if(isset($id)){
$qry = "insert into user_to_birds(user_id,tax_id)values( 1 ,'.$id .') ";
 $result = mysql_query($qry);
        }

我已连接到数据库,但查询无效。

为什么它不起作用?我怎么能纠正它?

5 个答案:

答案 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。

http://php.net/manual/en/book.mysqli.php

答案 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代表两个整数。在绑定的第一部分之后,告诉您使用哪种类型的变量,可以将这些变量的值添加到语句中。这些值将使用此方法自动转义。