检查表信息时出现PHP/SQL问题(如果存在)


PHP/SQL Issue when checking table information if exists

如果信息存在,我的一个页面将显示表中的信息,但它会输出一个错误,说明它不存在。

$get_provider = str_clean($_GET['provider']);
$provider_sql = mysql_query("SELECT * FROM `payment_providers` WHERE `provider_seo_name`='".$get_provider."'");
$row = mysql_fetch_array($provider_sql);
$check_provider = mysql_query("SELECT * FROM `payment_providers` WHERE `provider_seo_name`='".$get_provider."'");
$provider_exists = mysql_num_rows($check_provider);

''''''''''''''''''''''''''''''''''''''''''''''''''''''''

<?php if($provider_exists == 0) { ?>
<h2 class="page-header">Error!</h2>
<div class="alert alert-danger">You never specified a payment provider to redeem with.</div>
<?php } else { ?>
<h2 class="page-header"><?php echo $row['provider_name']; ?></h2>
<p><?php echo $row['provider_description']; ?></p> 

此表中存在特定provider_seo_name的信息,但由于某些原因,它不允许显示该信息或认为该信息不存在。我之前在页面扩展方面遇到了问题,我所做的编辑是将.php添加到位置

我在谷歌上搜索了可能的原因,但我找不出来。如果您需要更多信息,我很乐意为您提供

// Database info
$host = "localhost";
$database = "crm";
$user = "root";
$password = "bijoux22";
// Create a database connection w/ PDO
$pdo = new PDO('mysql:host='.$host.';dbname='.$database.';charset=utf8', $user, $password);
// Make a prepared statemnt
$q = $pdo->prepare("SELECT * FROM `payment_providers` WHERE `provider_seo_name`= :provider");
// Execute it with your variables
$q->execute(array(":provider"=>$_GET['provider']));
// Get the results
$row = $q->fetch();
// check if there were matches
if(count($row)) // provider exists
else // provider doesn't exist

请参阅:http://php.net/manual/en/pdo.prepared-statements.php

我可以看到两者都提供了正确的原因来解释为什么它不能正常运行

http://www.php.net/manual/en/types.comparisons.php

我在检查provider_exists时使用了错误的类型!空起作用,==0不起作用,因为它错误地检查了单元格值

我还将研究MYSQLi而不是mysql_函数,以避免这种情况再次发生。谢谢各位