【问题标题】:Select left in SQL doesn't work在 SQL 中选择左侧不起作用
【发布时间】:2014-09-09 18:52:13
【问题描述】:

我尝试了很多东西,但我就是无法锻炼为什么我的左剂量会起作用。

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

【问题讨论】:

  • 我看不到您实际打印结果的位置。你能显示那个代码吗?
  • 5 个空行是什么意思?您能否将 job_art 列添加到您的查询中,并为我们提供几行输出?

标签: php mysql sql pdo


【解决方案1】:

您正在尝试按名称 (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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2023-03-30
    相关资源
    最近更新 更多