我对mysql和php之类的东西不太了解,但我正在尝试了解数据库中的值是否为真。我知道mysql中列的名称,它被称为verified
。现在,我发现了一些代码,我认为这些代码是用来从mysql调用这个经过验证的列的
function SK_getUser($timeline_id=0, $all=false) {
global $dbConnect, $sk;
$timeline_id = SK_secureEncode($timeline_id);
$query_two = "SELECT $subquery_one FROM " . DB_ACCOUNTS . " WHERE id=" . $sql_fetch_one['id'] . " AND active=1";
$sql_query_two = mysqli_query($dbConnect, $query_two);
if (mysqli_num_rows($sql_query_two) == 1) {
$sql_fetch_two = mysqli_fetch_assoc($sql_query_two);
if (isset($sql_fetch_two['verified'])) {
$sql_fetch_two['verified'] = ($sql_fetch_two['verified']==1) ? true : false;
}
}
}
我在代码中看到过这一行被这样调用
if ($sk['timeline']['verified'] == true) {
// some code here
}
但当我试图在网站的其他部分这样调用这个函数时,它不起作用。所以我试图创建同样的动作,但可以在我的网站上的其他地方插入。你能帮我吗?
$row = mysql_fetch_array($sql_query_two);
if( isset($row['verified']) ){
//TRUE
}else{
//FALSE
}
要开始,所有php变量都必须以$开头。在第一行DB_ACCOUNTS中没有"$"。其次,在第一行"SELECT$subquery_one FROM"中,您试图选择一列,但似乎在调用php变量,因为它以"$"开头
MySQL没有布尔类型。它的列类型假装是布尔型,但实际上它只是一个可以是0或1的一位数整数。你粘贴的代码中的关键部分是:
$sql_fetch_two['verified'] = ($sql_fetch_two['verified']==1) ? true : false;
相当于:
if( $sql_fetch_two['verified'] == 1 ) {
$sql_fetch_two['verified'] = true;
} else {
$sql_fetch_two['verified'] = false;
}
?:
是三元运算符,本质上是if/else
块的简写。
无论如何,在PHP中,从整数到布尔类型的转换并不是严格必要的,因为type Juggling。