这里是新手。当 $color 引用“style”字段中的数字条目时,以下函数可以正常工作,例如“5000”。但如果条目是“5000B”或全是字母,则找不到它。这是索引问题吗?
function get_shirt_colors_by_style($color)
{
db_connect();
$query = "SELECT style,sanmar_mainframe_color,unique_key,color_square_image
FROM sanmar_products WHERE style=$color
GROUP BY style ORDER BY style";
$result = mysql_query($query);
$data = mysql_fetch_array($result);
return $data;
}
最佳答案
由于字符串未加引号,因此无法找到字母数字组合:
$query = "SELECT style,sanmar_mainframe_color,unique_key,color_square_image FROM sanmar_products WHERE style='$color' GROUP BY style ORDER BY style";
//-----------------------------------------------------------------------------------------------------------^^^^^^^^^
在 MySQL 查询中数字值不需要加引号,但字符串值必须始终用单引号引起来,如 '5000B'
。
我们假设 $color
的值已经针对 SQL 注入(inject)进行了转义:
// Hopefully this happened already.
// If not, do it before running mysql_query()
$color = mysql_real_escape_string($color);
关于php - 为什么我的查询找到的是数字字段条目,而不是数字/字母组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975097/