【问题标题】:Valid SQL query fails in PHP?有效的 SQL 查询在 PHP 中失败?
【发布时间】:2012-06-07 17:54:51
【问题描述】:

所以。我正在开发一个简单的系统。我有以下代码:

$sql = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
$aaa="SELECT UserName,activeuntil from sessions WHERE `sessionid`='$b' AND `sessiontype`=$a";
$sqc=mysqli_prepare($sql,$aaa);
mysqli_execute($sqc);
mysqli_bind_result($sqc,$un,$til);
while(mysqli_fetch($sqc)){echo $un;if(strtotime($til)>time())$user=$un;}
echo "Hi, $user";

$aaa 在我的例子中产生:

SELECT UserName,activeuntil from sessions WHERE `sessionid`='rc1xamoblbqxul78czfsvub62fudzc' AND `sessiontype`=0

这是在 PhpMyAdmin 中完美运行的查询。但是,整个代码不会产生结果(应该有 1 行)。为什么?我想我错过了一些非常简单的东西,但是什么?

P.S.:如果您只能说“请清理您的输入”、“这种编码风格很糟糕”,请不要回答这个问题,因为这些都会被修复。谢谢。

【问题讨论】:

  • 在尝试找出其他可能不正确的地方之前,先修复您知道错误的地方。
  • 这更重要,因为稍后需要进行消毒(目前不会公开)。
  • 我没有看到您的代码中定义了 $a$b
  • 它们是之前定义的。 (在这种情况下,$a 为 0,$b 为 rc1xamoblbqxul78czfsvub62fudzc)。
  • 不错的变量命名...非常有意义且易于调试

标签: php mysql mysqli


【解决方案1】:

我会推荐:

$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
$query ="SELECT UserName,activeuntil from sessions WHERE 'sessionid'='$b' AND 'sessiontype'=$a";
$query = mysqli_query($link, $query);
while($row = mysqli_fetch_object($query))
{
echo "Hi ".$row->UserName;
}

【讨论】:

    【解决方案2】:

    当我在 php 中遇到查询问题时,我会回显我的 SQL 字符串并在 PHPmyAdmin 中运行它。如果它执行正常,那么您的连接有错误。希望这会有所帮助。

    【讨论】:

    • 正如我在一个问题中提到的,它执行得很好。但是,mysqli_error 给出了空白结果,因此连接中没有错误。
    【解决方案3】:

    我忘记了一个琐碎的、非 SQL 相关的事情(一个包含语句......)。无论如何,感谢所有的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-26
      • 2015-01-12
      • 2020-01-20
      • 2023-03-31
      • 2013-01-24
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多