Mysql插入问题

时间:2011-03-10 01:43:41

标签: php mysql

当插入的值仅包含诸如“728011955”之类的数字时,它完全正常,但如果值包含任何字母,例如“1lKw7Rcc1iM8WB9c”,则无法插入。

以下是失败的查询。

  $query = ("INSERT INTO $tbl_name VALUES ($key, $timestamp, $use)");

mysqlerror()输出如下。

Unknown column '1lKw7Rcc1iM8WB9c' in 'field list'

帮助! :)

2 个答案:

答案 0 :(得分:7)

你必须引用你的参数。

$query = ("INSERT INTO $tbl_name VALUES ('$key', '$timestamp', '$use')");

但是你读到了SQL注入攻击,因为如果这些变量来自你的程序之外,这个查询很可能容易受到攻击。

答案 1 :(得分:0)

不要挑剔,但为什么外括号?也就是说,这样做也会更容易阅读:

$query = "INSERT INTO $tbl_name VALUES ('$key', '$timestamp', '$use')";

对于您的错误,不应引用数值(例如,可能是您的键和时间戳值),表名也是如此。另一方面,字符串类型需要引号。

虽然其他人提到参数绑定和预处理语句以使您的SQL更安全,但另一种可能性是use sprintf