我的MySQL表包含一个tinyint(1)值,用于存储true或false值.
我有以下PHP变量:
$name = '';
$description = '';
$active = true;
现在我的SQL查询如下:
$query = "INSERT into my_table (my_name,my_description,active) VALUES ('$name','$description',$active) ";
这只有在$active的值为true时才有效.一旦活动变量为false,PHP将插入一个空字符串,而不是0,因此查询将失败.
我应该手动将false转换为’0’字符串吗?@H_404_24@是否更好地立即在PHP方面使用stings?换言之,声明:$active =’1′;@H_404_24@或者我可以以某种方式让PHP总是将false转换为’0’字符串?
最佳答案@H_502_29@
首先,您应该使用MysqL_real_escape_string或MysqLi_real_escape_string或其他适合您的数据库连接的方法来转义您的值以避免sql注入然后针对您的特定问题,您可能会执行以下操作:
$query = "INSERT into my_table (my_name,".($active?1:0) .")";
或者将$active转换为int也应该做的工作:
$query = "INSERT into my_table (my_name,".((int) $active)).")";
@H_502_29@
原文链接:https://www.f2er.com/mysql/433401.html