尝试将自动生成的PHP代码从MySQL导入PHP时出现问题。
服务器信息: MySQL verson:Server-versjon:5.6.25 PHP版本:5.6.11
我的数据库包含3个与外键等联合的表。
ansatt,计时器,prosjekt
这是我在MySQL中的查询:
SELECT ansatt.brukernavn, timer.bruker_id_fk, timer.dag,timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn FROM ansatt JOIN timer ON ansatt.brukerid = timer.bruker_id_fk JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id WHERE ansatt.brukerid = 11
这为我提供了以下successful result
当我在.php文件中使用以下生成的代码时
$sqlget = "SELECT ansatt.brukernavn, timer.bruker_id_fk, timer.dag, timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn\n"
. "FROM ansatt\n"
. "JOIN timer ON ansatt.brukerid = timer.bruker_id_fk\n"
. "JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id\n"
. "WHERE ansatt.brukerid = 11";
date_default_timezone_set("Europe/Oslo");
$sqldata = mysqli_query($dbcon, $sqlget) or die ('kunne ikke hente info');
echo "<table>";
echo "<tr><th>Dato</th><th>Prosjekt</th><th>Std. Arb.Timer</th><th>Overtid 50%</th><th>Overtid 100%</th><th>Km</th>";
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo $row['dag'];
echo "</td><td>";
echo $row['prosjekt_navn'];
echo "</td><td>";
echo $row['timer'];
echo "</td><td>";
echo $row['overtid_50'];
echo "</td><td>";
echo $row['overtid_100'];
echo "</td><td>";
echo $row['km'];
echo "</td><td>";
}
echo "</table>"
它将显示以下记录: working php并且一切都很好,但是当我尝试使用以下查询更改MySQL中的日期格式时
SELECT ansatt.brukernavn, timer.bruker_id_fk, DATE_FORMAT(timer.dag,'%d-%m-%Y'), timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn FROM ansatt JOIN timer ON ansatt.brukerid = timer.bruker_id_fk JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id WHERE ansatt.brukerid = 11
一切都很好,并为我提供了成功的结果和格式化日期dd.mm.yyyy。当我在PHPadmin中单击生成PHPcode时,它会向我显示以下代码:
$sqlget = "SELECT ansatt.brukernavn, timer.bruker_id_fk, DATE_FORMAT(timer.dag,\'%d-%m-%Y\'), timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn FROM ansatt JOIN timer ON ansatt.brukerid = timer.bruker_id_fk JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id WHERE ansatt.brukerid = 11";
当我刷新网站时,它无法从
获取任何数据$sqldata = mysqli_query($dbcon, $sqlget) or die ('kunne ikke hente info');
当我删除以下代码
DATE_FORMAT(timer.dag,\&#39;%d-%m-%Y \&#39;)
并替换为&#34; timer.dag&#34;它将再次显示yyyy.mm.dd中的日期作为默认值。
我试图在论坛和网络上搜索一件衣服,我找不到能够解决这个问题或指向正确方向的匹配答案
对不起,如果我的语法不是最好的,对不起,如果这已经得到了回答。希望有人在这里有答案,我可以为那些有兴趣并需要它的人提供数据库的副本。
答案 0 :(得分:0)
在您的查询中
$sqlget = "SELECT ansatt.brukernavn, timer.bruker_id_fk, DATE_FORMAT(timer.dag,\'%d-%m-%Y\'), timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn FROM ansatt JOIN timer ON ansatt.brukerid = timer.bruker_id_fk JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id WHERE ansatt.brukerid = 11";
DATE_FORMAT中的简单引号不需要使用\
进行转义
试试这个:
$sqlget = "SELECT ansatt.brukernavn, timer.bruker_id_fk, DATE_FORMAT(timer.dag,'%d-%m-%Y'), timer.timer, timer.overtid_50, timer.overtid_100, timer.km, prosjekt.prosjekt_navn FROM ansatt JOIN timer ON ansatt.brukerid = timer.bruker_id_fk JOIN prosjekt ON timer.prosjekt_id_fk = prosjekt.prosjekt_id WHERE ansatt.brukerid = 11";
我希望它能帮到你
答案 1 :(得分:0)
使用
输出mysql错误$sqldata = mysqli_query($dbcon, $sqlget) or die ('kunne ikke hente info. Error: ' . mysqli_error($dbcon));
字段timer.dag的类型是什么?
尝试为此计算字段设置名称:
... DATE_FORMAT(timer.dag, '%d-%m-%Y') AS dag, ...