【发布时间】:2014-11-26 23:21:03
【问题描述】:
我在这里有一个完全的嗡嗡声。
我试图从mysql_fetch_array() 的查询中获得结果,但它带来了 from 值。这是一个简单的例子:
这是查询:
$query = SELECT COUNT(*) AS total FROM rese WHERE usua_cod = '{$user_cod}';
这是“数据库工具”上的查询输出:
这是 PHP 代码:
$sql_check = mysql_query($query) or die( mysql_error());
if($sql_check)
{
$result_check = mysql_fetch_array($sql_check);
if($result_check[0] > 0)
{
//Erro
$Result = array('Resultado'=>"NO",
"msg"=>"Você já possui uma reserva neste horário",
'debug'=>$result_check[0],
'query'=>"$query",
'res1'=>$result_check);
$arrayOfChildren[] = $Result;
$myJSON = json_encode($arrayOfChildren);
echo($myJSON);
}
else
{
// DOES THE INSERT CODE
}
}
在 Xcode 控制台上我得到了这个:
2014-11-26 21:10:00.784 ezmall[1250:423465] dict : (
{
Resultado = NO;
debug = 1;
msg = "Voc\U00ea j\U00e1 possui uma reserva neste hor\U00e1rio";
query = "SELECT COUNT(*) AS total FROM rese WHERE usua_cod = '{$user_cod}'";
res1 = {
0 = 1;
total = 1;
};
}
)
所以我认为有些东西搞砸了,因为“res1”上的“0”应该是“total”而不是索引的结果。那么,有什么想法吗?
干杯。
【问题讨论】:
-
var_dump($sql_check);打印?你有没有看到manual 上的那个大红框,它的存在是有原因的;) -
警告:这是非常不安全的,因为这些参数不是properly escaped。您应该绝不将
$_POST数据直接放入查询中:它会创建一个巨大的SQL injection bug。mysql_query是一个过时的接口,不应使用,它已从 PHP 中删除。像PDO is not hard to learn 这样的现代替代品。 PHP The Right Way 之类的指南解释了最佳实践。 -
你可以看到link