【问题标题】:multiple mysql_query requests in one document一个文档中有多个 mysql_query 请求
【发布时间】:2010-12-18 14:47:56
【问题描述】:

我有一个打开数据库连接的 PHP 文档。一切正常 - 但只要我向文档添加一个额外的 mysql_query 请求,mySQL 服务器就会响应 500 内部服务器错误。

知道为什么吗?一个文档中不能有多个 mysql_query 请求是否有原因?

非常感谢!

有问题的 PHP 代码在这里(大部分回声是出于调试原因)

<?php
$q=$_GET["q"];

$con = mysql_connect('address.com', 'database', 'password');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("sql01_5789willgil", $con);

$sql1="SELECT * FROM place WHERE title = '".$q."'";
$result1 = mysql_query($sql1);
$row = mysql_fetch_array($result1);
$id=$row+1;


$sql2="SELECT * FROM place WHERE title = '".$q."'";

$result2 = mysql_query($sql2);

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";

while($row = mysql_fetch_array($result2))
  {
  echo "<tr>";
  echo "<td>" . $row['title'] . "</td>";
  echo "<td>" . $row['description'] . "</td>";
  echo "<td>" . $row['latitude'] . "</td>";
  echo "<td>" . $row['longitude'] . "</td>";
  echo "<td>" . $row['image'] . "</td>";
  echo "</tr>";
  }
echo "</table>";


echo "ID equals " . $id;
echo "row equals " . $row;

mysql_close($con);
?>

【问题讨论】:

  • MySQL 服务器响应 500?
  • 您是否检查了错误日志以了解究竟发生了什么? 500 错误内部服务器错误来自 Apache,而不是 mySQL,因此那里的错误日志应该告诉您出了什么问题。
  • 啊,好吧,我想我误解了错误的来源。我在 Chrome 开发工具中看到错误:消息是:加载资源失败:服务器响应状态为 500(内部服务器错误)。我认为它是 sql 服务器,因为添加额外的 mysql_query 导致它中断......
  • 很遗憾,我的网络空间由托管公司托管,我无权访问日志... :(
  • 你能贴出你的代码吗,我猜你有一个语法错误,并且 php 设置为在发生这种情况时给出一个内部服务器错误。

标签: php sql mysql


【解决方案1】:
$sql1="SELECT * FROM place WHERE title = '".
mysql_real_escape_string($q, $con)."'"; <-- please escape

$result1 = mysql_query($sql1, $con);    <-- always specify link identifier

if ($result1)
{
  $row = mysql_fetch_array($result1);  <-- always check result exist before fetch
}

【讨论】:

    【解决方案2】:

    从这里:

    $sql1="SELECT * FROM place WHERE title = '".$q."'";
    $result1 = mysql_query($sql1);
    $row = mysql_fetch_array($result1);
    $id=$row+1;
    

    您正在将“1”添加到数组中。我在我的盒子里试过这个脚本:

    <?php
    $row = array("my", "name", "is", "foo");
    $id = $row + 1;
    ?>
    

    并收到此错误:

    致命错误:不支持的操作数类型

    也许这是脚本抱怨的问题。

    从这里的答案:Apache Fall Back When PHP Fails 这很可能是它返回 500 的原因

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多