你好:)看起来我不是一个好程序员,如果不能正常工作。让我们看看代码。
$pkt = mysql_query("SELECT meta_value FROM wp_usermeta WHERE user_id = $user_id AND meta_key='mycred_default'");
if ( $pkt < $price OR $user_id == 0)
{
$message = 'Sorry, you need more LPoints.';
echo "<SCRIPT type='text/javascript'>
alert('$message');
window.location.replace(('"http://sute.com/rp'"));
</SCRIPT>";
mysql_close();
}
所以pkt是我的用户得到的一些变量。所以,如果他得到的点数(pkt)少于他得到的javascript消息的价格,对吧?好它不起作用。即使我的用户获得的$pkt比$price多,他仍然会收到这条消息。但当我把"<"改为">"时,这意味着如果他得到的积分超过了价格,他就买不到了,对吧?好不会再发生了。如果我设置$pkt>$price脚本只是跳过这个If-instruction,并表现得像它不存在一样,所以它只是继续脚本。知道吗?
遗憾的是,有问题的人。
$res = mysql_query("SELECT meta_value FROM wp_usermeta WHERE user_id = $user_id AND meta_key='mycred_default'");
$result = mysql_fetch_assoc($res);
$pkt = $result['meta_value'];
if ( $pkt < $price || $user_id == 0)
{
$message = 'Sorry, you need more LPoints.';
echo "<SCRIPT type='text/javascript'>
alert('$message');
window.location.replace(('"http://sute.com/rp'"));
</SCRIPT>";
}
mysql_close();
PDO示例:
<?php
// Initialize the database connection
$pdo = new PDO('mysql:host='.$your_hostname.';dbname=.'$your_db, $user, $pass,
array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
);
$sql = "SELECT meta_value FROM wp_usermeta WHERE user_id = :user_id AND meta_key='mycred_default'";
// Create prepared statement
$stm = $pdo->prepare($sql);
$stm->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$stm->execute();
$pkt = $stm->fetchColumn();
if ( $pkt < $price || $user_id == 0)
{
$message = 'Sorry, you need more LPoints.';
echo "<SCRIPT type='text/javascript'>
alert('$message');
window.location.replace(('"http://sute.com/rp'"));
</SCRIPT>";
}