php - mysql插入的问题

标签 php mysql

如果我尝试将撒克逊属格中的某些内容插入数据库(例如,值“mike's”将不会被插入),我的 php 脚本将无法工作。 PHP 代码简单明了:

"INSERT INTO cache (id,name,LinkID,number,TChecked) VALUES(".$idUser.",'".$LinkName."',".$LinkID.",".$number.",NOW());"

一切正常,直到“$LinkaName”获得一些具有“特殊字符”的值。如何将“mike's”、“won't”等值存入 MySql 数据库?

最佳答案

您需要正确转义这些字符串。此外,您现在使用的技术会使您面临 SQL 注入(inject)攻击。

mysql_real_escape_string 的 PHP 文档给出了一个很好的例子来说明你应该做什么:

// Query
$query = sprintf("INSERT INTO cache (id,name,LinkID,number,TChecked) VALUES(%d,'%s',%d,%d,'%s');",
   mysql_real_escape_string($idUser),
   mysql_real_escape_string($LinkName),
   mysql_real_escape_string($LinkID),
   mysql_real_escape_string($number),
   mysql_real_escape_string(NOW()));

关于php - mysql插入的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5072498/

相关文章:

mysql - 从选择查询 MySql 插入记录否则更新

php - 需要把mysql的数据以某种格式打印成json

mysql - 我在 MySQL 中使用某些外键创建表时出错

php - 使用MySQL命令行生成数据

php - MySQL 查询变量相等的情况

php - Wamp 2.2 安装 PEAR

Mysql Switch case 返回不正确的结果

PHP - 可调用方法不是数组

php - 使用 mysql_query() 获取位字段

mysql - 将 ASCII 文件存储为 MySQL 或 Oracle 中的 BLOB 字段是否可以减少存储需求?