当前位置:  开发笔记 > 编程语言 > 正文

插入奇怪的Mysql问题

如何解决《插入奇怪的Mysql问题》经验,为你挑选了1个好方法。

Hy all,

不确定这里发生了什么,但如果我运行这个:

$query = 'INSERT INTO users 
(`id`, `first_name`, `second_name`, `register_date`, `lastlogin_date`) 
VALUES 
("'. $user_id . '", "' . $first_name .'", "'. $second_name . '", "' . $date . '", "' . $date . ");'; 
$result = mysql_query($query);

我得不到回报,但是如果我改成它就没关系了:

$query = 'INSERT INTO users (`id`, `first_name`, `second_name`, `register_date`, `lastlogin_date`) 
VALUES ("21021212", "Joe", "Bloggs", "20090202", "20090202");'; 
$result = mysql_query($query);

用户名= bigint(20)

名字= varchar(30)

第二名= varchar(30)

date = int(8)

起初我认为这是vars的一个问题,但它们完全一样,仍然无法正常工作.

任何帮助赞赏.



1> Paul Dixon..:

养成使用mysql_real_escape_string转义所有数据库输入的习惯- 实际上,您应该使用某种类型的包装器(如PDO或ADODb)来帮助您执行此操作,但是您可以在不执行以下操作的情况下执行此操作:

$query = sprintf("INSERT INTO users ".
    "(id, first_name, second_name, register_date, lastlogin_date)".
    "VALUES('%s','%s','%s','%s','%s')",
    mysql_real_escape_string($user_id),
    mysql_real_escape_string($first_name),
    mysql_real_escape_string($second_name),
    mysql_real_escape_string($date),
    mysql_real_escape_string($date));

 $result = mysql_query($query);

并使用mysql_error检查错误

 if (!$result)
 {
     echo "Error in $query: ".mysql_error();
 }

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有