MySQL SELECT 查询似乎跳过了空格


MySQL SELECT query seems to skip spaces

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

这是我的代码:

    $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 作为我的一个文本框的值=$doctnamerow,忘记了加双引号,这导致 value=医生姓名而不是值="医生姓名"。不好意思

Flash 代码审查:

  • mysql_*已弃用。使用 MySQLi 或 PDO。
  • 您的代码对 SQL 注入完全开放
  • 每次迭代都会覆盖$doctornamerowvalue
  • 你正在做的foreach毫无意义。
  • 变量名称选择不当。

这里重构了它:

// 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>';
}

与您的"错误"相关

  • 检查表结构和数据。该字段可能仅包含姓氏,并且还有另一个字段包含该名称。
  • 检查表长度 - 可能它太小,所以字符串被截断。

试试这个:

$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; 
}

使用了这个:

$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'];
}