Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与mysql和php的比较问题_Php_Mysql - Fatal编程技术网

与mysql和php的比较问题

与mysql和php的比较问题,php,mysql,Php,Mysql,$mds>=$preco的行似乎不起作用,它总是返回true或EchoCompado 当$mds为=。否则,用户将无法购买物品,除非他们的硬币数量超过物品的成本。此处实际的$mds和$preco是什么,数字或字符串。。。如果number将sql返回的数据解析为number,然后进行比较,那么它们是一个数字,我该如何解析它呢?这几乎就像mysql_fetch_对象没有返回数字一样,但是。。。我不知道。。。也许是一个对象?只需执行intval$mds->coins>=$preco。。将int更改为所

$mds>=$preco的行似乎不起作用,它总是返回true或EchoCompado

当$mds为<$preco但不是时,它应该会给我另一条消息

$preco位于另一个文件中:

$preco = $row['pret'];
php:

mysql_fetch_对象不返回coins字段的值。它返回一个对象。如果要检查coins字段的值,请执行以下操作:

if ($mds->coins > $preco) { …
您还应该知道mysql\u fetch\u对象已被弃用。您不应该使用任何mysql_*函数。相反,可以使用mysqli_*函数,或者更好

很好,您已经使用mysql\u real\u escape\u字符串来防止SQL注入攻击。然而,更好、更现代的解决方案是使用PDO的参数绑定。有关示例,请参见该方法

最后,您的价格检查中似乎存在逻辑错误。我假设$preco是物品的硬币价格,$coins是用户拥有的硬币数量。如果是这种情况,那么您需要:

if ($mds->coins >= $preco) { …

请注意>=。否则,用户将无法购买物品,除非他们的硬币数量超过物品的成本。

此处实际的$mds和$preco是什么,数字或字符串。。。如果number将sql返回的数据解析为number,然后进行比较,那么它们是一个数字,我该如何解析它呢?这几乎就像mysql_fetch_对象没有返回数字一样,但是。。。我不知道。。。也许是一个对象?只需执行intval$mds->coins>=$preco。。将int更改为所需的任何数据类型
if ($mds->coins >= $preco) { …