在SQL中选择左边不起作用

时间:2014-09-09 18:52:13

标签: php mysql sql pdo

我尝试了很多东西,但我只是不能锻炼为什么我的左侧剂量工作。

这个dos不起作用,只给我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>   

1 个答案:

答案 0 :(得分:4)

您尝试按名称(PDO::FETCH_ASSOC)阅读列,但您还没有为LEFT(job_art, 15)的结果命名,因此尝试访问{{1不会包含任何内容。

要解决此问题,您需要为表达式的值添加别名。您的新查询应如下所示:

$r['job_art']