0

如果我有一张名为 book 的桌子

Column 1 = current_user
, Column 2 = page_length
, Column 3 = author
, Column 4 = title

我想从与当前登录用户对应的第 2、3 和 4 列中选择数据。以下是正确的语法吗?

<?
global $user;
$user_id=$user->name;
db_query('SELECT * FROM {book} WHERE current_user=$user_id', $page_length, $author,   $title); ?>
4

1 回答 1

1

一些技巧:

  1. 您需要确保在作为 SQL 语句的字符串周围使用引号。
  2. 由于用户名是用户提供的字符串,因此您应该使用参数转义来防止 SQL 注入。
  3. 您实际上不需要将用户名分配给单独的变量 ( $user_id) 即可使用它。
  4. 您需要从db_query.

固定代码:

<?php
global $user;
$res = db_query("SELECT page_length, author, title FROM {book} WHERE current_user = '%s'", $user->name); 
$row = db_fetch_array($res);
// now $row['page_length'], $row['author'] and $row['title'] are filled in with values if the query was successful
?>
于 2013-01-21T22:24:23.093 回答