我已经尝试了很多东西,但我就是无法锻炼为什么我的左侧没有工作。
这不起作用,只给我5(5后)空行
$sql = 'SELECT work_id, LEFT(job_art, 15) FROM rum where work_id = :work_id';
这适用于
$sql = 'SELECT work_id, job_art FROM rum where work_id = :work_id';
这不起作用(
$sql = 'SELECT LEFT(job_art, 15), work_id FROM rum where work_id = :work_id';
我的sql看起来像这个
$work_id = $_GET['work_id'];
$job_art = $_GET['job_art'];
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT work_id, LEFT(job_art, 15) FROM rum where work_id = :work_id';
$q = $pdo->prepare($sql);
$q->bindValue(':work_id', $work_id);
$q->execute();
$q->setFetchMode(PDO::FETCH_ASSOC);
?>
<?php while ($r = $q->fetch()): ?>
<div class="liste"><p class="padding"><?php echo htmlspecialchars($r['job_art'])?></p></div>
您正在尝试按名称读取列(PDO::FETCH_ASSOC
),但尚未为LEFT(job_art, 15)
的结果指定名称,因此尝试访问$r['job_art']
不会包含任何内容。
若要解决此问题,您需要对表达式的值进行别名。您的新查询应该如下所示:
SELECT work_id, LEFT(job_art, 15) AS job_art FROM rum WHERE work_id = :work_id