1

私はMYSQL / PHPを学んでいます。クエリに問題があります。myphpadmin で動作しています:

select `email`, count(*) as count
from `table`
where `date` = "open"
group by `email`
order by `email`

mysql_query を自分で作成するか、myphpadmin が生成する php を使用すると、機能しません。

$sql = "select `email`, count(*) as count\
    . "from `table`\n"
    . "where `date` = \"open\"\n"
    . "group by `email`\n"
    . "order by `email`\n"
    . "";

目的は、EMAIL、DATE、EVENT の 3 列のテーブルをクエリすることです。ここで、EVENT は「オープン」または「バウンス」の可能性があり、ユーザーがメールを開いた回数をカウントします。

ファイルの残りの部分は次のとおりです (msqli を使用する必要があることに気付きました。これは私のリストの次のリストです....):

<?php


$db_host = '123';
$db_user = '123';
$db_pwd = '123';

$database = '';
$table = 'test';

if (!mysql_connect($db_host, $db_user, $db_pwd))
    die("Can't connect to database");

if (!mysql_select_db($database))
    die("Can't select database");



sql = "select `email`, count(*) as count\n"
    . "from `table`\n"
    . "where `date` = \"open\"\n"
    . "group by `email`\n"
    . "order by `email`\n"
    . "";



// sending query
$result = mysql_query($sql);
if (!$result) {
    die("Query to show fields from table failed 2");
}



echo "<table border='1'>
<tr>
<th>email</th>
<th>event</th>
<th>date</th>

</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['Email'] . "</td>";
  echo "<td>" . $row['event'] . "</td>";
  echo "<td>" . $row['date'] . "</td>";
   }

echo "</table>\n";




mysql_free_result($result);
?>

「テーブルからフィールドを表示するクエリが失敗しました 2」が返されました-クエリは機能しませんでした

クエリの '\n' は、myphpadmin によって生成されました (「php コードの生成」機能を使用した場合)

データベースに接続しています。これらの変数に割り当てられた値を変更しただけなので、投稿しません

ファイルの $sql 変数に「$」がありますが、ここにコピーされませんでした。

そう、

このクエリを単純なものに置き換えると問題なく動作しますが、より複雑なクエリを試すとうまくいきません。私はそれがmysql WHERE date= "open"を適切な(エスケープされた?)phpに変換することに関係していると思います....


自分の問題を見つけたときの手順がわかりません=(いくつかの)最大の問題。myphpadmin で「PHP コードの生成」機能を使用すると、テーブルの列の名前からメールの大文字「E」が保持されませんでした...

4

4 に答える 4

0

これらの改行文字が問題になる可能性があります...

試す

$sql = "select email, count(*) as count from table where date=\"open\" group by email order by email";
于 2012-09-25T18:02:19.860 に答える
0

あなたの$database変数は空です、そしてあなたはそれをあなたのmysql_select_db

于 2012-09-25T17:58:13.733 に答える
0
  1. 19 行目 (空行を含む) の sql var に $ がありません。
  2. $result の値は? またはその前にエラーがありますか?
于 2012-09-25T18:06:01.910 に答える
-1

` の代わりに ' を使用してみてください。

また、データベースとのアクティブな接続があることを確認してください。接続が可能かどうかのみをチェックしているため、実際に接続をそのまま維持しているかどうかはわかりません。

代わりに、次のことができます。

$connect = mysql_connect($db_host, $db_user, $db_pwd) or die(mysql_error());
于 2012-09-25T17:54:38.827 に答える