首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL SELECT查询似乎跳过了空格

问MySQL SELECT查询似乎跳过了空格
EN

Stack Overflow用户
提问于 2013-09-06 21:46:47
回答 3查看 798关注 0票数 0

我是一个PHP和mySQL的初学者,我在我的项目中使用它。我的查询有点问题。

这是我的代码:

代码语言:javascript
复制
    $doctname = mysql_query("SELECT name_of_doctor FROM {$table} WHERE department_no = '{$_REQUEST['deptno']}'");
    $doctnamerow = mysql_fetch_row($doctname);

    do
    {
        foreach ($doctnamerow as $cell)
        {
            $doctnamerowvalue = $cell;
        }
    } while ($doctnamerow = mysql_fetch_row($doctname));

所以我的问题是,如果医生的名字之间有一个空格(例如"AJ Ramos"),那么它似乎会跳过空格,只返回"AJ“,而不是姓氏。我该怎么做呢?谢谢=)

编辑:

愚蠢的我,这只是我的代码的一个错误,我使用$doctnamerowvalue作为我的一个文本框的value=$doctnamerow,并忘记放双引号,这导致了value=doctor名称而不是value=“医生名称”。抱歉的

EN

回答 3

Stack Overflow用户

发布于 2013-09-06 22:06:05

闪存代码审查:

  • mysql_*已弃用。使用injection
  • $doctornamerowvalue或PDO。
  • 您的代码对SQL是完全开放的,在每个injection
  • $doctornamerowvalue上都会被覆盖。
  • 您正在进行的操作是foreach名称选择不当。

这里的是重构的:

代码语言:javascript
复制
// do these in a config file !!!
$db = new PDO('mysql:dbname=' . DB_NAME . ';host=localhost', DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); // if you want to use associative arrays

// here is the refactored code
$query = "SELECT name_of_doctor FROM `{$table}` WHERE department_no = :deptno";

$stmt = $db->prepare($query);
$stmt->execute(array(':deptno' => $_REQUEST['deptno']));
$doctors = $stmt->fetchAll();

foreach ($doctors as $doctor) {
     echo $doctor['name_of_doctor'] . '<br>';
}

与您的“bug”相关的

  • 检查表结构和数据。有可能该字段仅包含姓氏,而另一个字段包含该姓名。
  • 检查表格长度-可能太小,因此字符串被截断。
票数 1
EN

Stack Overflow用户

发布于 2013-09-06 21:56:22

试试这个:

代码语言:javascript
复制
$sql = "your sql syntax";
$result = mysql_query($sql);

$array_of_things = array();

while ($row = mysql_fetch_array($result)) {
    $array_of_things[] = $row['table_column_name'];
}

foreach($array_of_things as $val) {
    echo $val; 
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-06 22:01:58

使用以下命令:

代码语言:javascript
复制
$doctname = mysql_query("SELECT name_of_doctor FROM {$table} WHERE department_no = '{$_REQUEST['deptno']}'");
$doctnamerow = mysql_fetch_row($doctname);


while ($raw = mysql_fetch_row($doctname)) {
echo $raw['name_of_doctor'];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18659388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档