私は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」が保持されませんでした...