为什么我的 php "if statement" 不影响我的 mysql 查询?
Why is my php "if statement" not affecting my mysql query?
首先,我知道 mysql 已被弃用。一旦我弄清楚手头的问题,就会更改为 mysqli。即使未在 'stripetoken' 列中设置数据,我的查询也会继续更新我的所有行。为什么会这样?
代码片段:
$token_query = 'SELECT * FROM jobsubmission';
$token_res = mysql_query($token_query);
$token_row = mysql_fetch_array($token_res);
if(isset($token_row['stripetoken'])) {
$updqry = 'UPDATE jobsubmission SET assigned=1 WHERE ID="'.$book_ids[$jcount].'"';
$update = mysql_query($updqry);
$bookdate = date("d-m-Y");
因为 $token_row['stripetoken']
总是 设置,因为它是您数据库中的一个列,因此它将在 $token_row
中可用。现在它是否有价值是另一回事了。您应该改用 empty()
(假设您不希望它对虚假值为真)。
if(!empty($token_row['stripetoken'])) {
因此,虽然@JohnConde 说我需要在 isset 上使用空函数是完全正确的,但我的解决方案在其他地方。以下是我如何设法使查询符合我的规范:
- 我没有搜索空的,而是将 'stripetoken' 列设置为 NULL
默认情况下。
这让我可以使用以下代码:
$token_query = 'SELECT * FROM jobsubmission WHERE ID="'.$book_ids
[$jcount].'" and stripetoken is not null';
$token_res = mysql_query($token_query);
$token_row = mysql_fetch_object($token_res);
if(!$token_row->stripetoken == NULL) {
首先,我知道 mysql 已被弃用。一旦我弄清楚手头的问题,就会更改为 mysqli。即使未在 'stripetoken' 列中设置数据,我的查询也会继续更新我的所有行。为什么会这样?
代码片段:
$token_query = 'SELECT * FROM jobsubmission';
$token_res = mysql_query($token_query);
$token_row = mysql_fetch_array($token_res);
if(isset($token_row['stripetoken'])) {
$updqry = 'UPDATE jobsubmission SET assigned=1 WHERE ID="'.$book_ids[$jcount].'"';
$update = mysql_query($updqry);
$bookdate = date("d-m-Y");
因为 $token_row['stripetoken']
总是 设置,因为它是您数据库中的一个列,因此它将在 $token_row
中可用。现在它是否有价值是另一回事了。您应该改用 empty()
(假设您不希望它对虚假值为真)。
if(!empty($token_row['stripetoken'])) {
因此,虽然@JohnConde 说我需要在 isset 上使用空函数是完全正确的,但我的解决方案在其他地方。以下是我如何设法使查询符合我的规范:
- 我没有搜索空的,而是将 'stripetoken' 列设置为 NULL 默认情况下。
这让我可以使用以下代码:
$token_query = 'SELECT * FROM jobsubmission WHERE ID="'.$book_ids [$jcount].'" and stripetoken is not null'; $token_res = mysql_query($token_query); $token_row = mysql_fetch_object($token_res); if(!$token_row->stripetoken == NULL) {