Mic*_*rey 5 php mysql data-conversion
我的MySQL表包含一个tinyint(1)值,用于存储true或false值.
我有以下PHP变量:
$name = '';
$description = '';
$active = true;
Run Code Online (Sandbox Code Playgroud)
现在我的SQL查询如下:
$query = "INSERT into my_table (my_name, my_description, active) VALUES ('$name', '$description', $active) ";
Run Code Online (Sandbox Code Playgroud)
这只有在$ active的值为true时才有效.一旦活动变量为false,php将插入一个空字符串,而不是0,因此查询将失败.
在这样的查询中使用false的最佳方法是什么?
我应该手动将false转换为'0'字符串吗?是否更好地立即在PHP方面使用stings?换言之,声明:$ active ='1'; 或者我可以以某种方式让PHP总是将false转换为'0'字符串?
谢谢迈克尔
首先,应使用mysql_real_escape_string或mysqli_real_escape_string或其他适合您的数据库连接的方法对值进行转义,以避免sql注入,然后针对与false有关的特定问题,您可以执行以下操作:
$query = "INSERT into my_table (my_name, my_description, active) VALUES ('$name', '$description', ".($active?1:0) .")";
Run Code Online (Sandbox Code Playgroud)
或将$ active强制转换为int应该也可以完成以下工作:
$query = "INSERT into my_table (my_name, my_description, active) VALUES ('$name', '$description', ".((int) $active)).")";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6251 次 |
| 最近记录: |