Mos*_*oss 1 php mysql formatting types
我想有一个通用的PHP函数,它根据函数的参数构建一个mysql查询.由于它是通用的,查询有时可能会要求id = 123或name ='Bob'.我测试了一些关于数字的引用的问题,甚至是类似的东西WHERE id > '50' + 7,但是它有效,但我怀疑这不会给你带来麻烦.我想如果这真的是一个通用函数,它应该能够处理日期和其他任何数据类型.那么安全地形成这些查询的最佳方法是什么?
只要您的查询适用于mySQL,任何类型的值都可以使用引号.处理值的方式取决于与之比较的字段类型.如有必要,它们将自动转换.
顺便说一句,你可能要考虑数据库的包装,提供预处理语句像PDO.除了其他优点,他们将采取引用的护理-和输入数据的转义-自己.
手册中的一个例子:
<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>
Run Code Online (Sandbox Code Playgroud)