我是mysql的新手,下面是我试图从数据库中获取值但得到错误的代码。
错误:解析错误:语法错误,意外'' (T_ENCAPSED_AND_WHITESPACE),期待标识符(T_STRING)或 变量(T_VARIABLE)或数字(T_NUM_STRING)
代码:
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td align='center'>" . $row['ticket_no']. "</td>";
echo "<td align='center'> <select>
<?php
$host='localhost'; // Host name
$username='root'; // Mysql username
$password=''; // Mysql password
$db_name='testing'; // Database name
// Connect to server and select databse.
$conn=mysqli_connect($host,$username,$password) or die('cannot connect');
mysqli_select_db($conn,$db_name);
$username='SELECT name from user where role="Support"';
$uresult=mysqli_query($username) or die(.mysqli_error());
while($rows=mysqli_fetch_array($uresult))
{
$name=$rows['name'];
echo '<option>$name</option>';
}
?></select> </td>";
echo "</tr>";
}
答案 0 :(得分:1)
像这样,它应该有效:
<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td align='center'>" . $row['ticket_no']. "</td>";
echo "<td align='center'> <select>";
$host='localhost'; // Host name
$username='root'; // Mysql username
$password=''; // Mysql password
$db_name='testing'; // Database name
// Connect to server and select databse.
$conn=mysqli_connect($host,$username,$password) or die('cannot connect');
mysqli_select_db($conn,$db_name);
$username='SELECT name from user where role="Support"';
$uresult=mysqli_query($username) or die(mysqli_error($conn));
while($rows=mysqli_fetch_array($uresult))
{
$name=$rows['name'];
echo "<option>$name</option>";
}
echo "</select></td>";
echo "</tr>";
}
?>
但最终最好一次查询所有用户,而不是在外部while循环的每次迭代中选择它们。
答案 1 :(得分:0)
我相信$ name的数据有一些特殊字符,如双引号,所以为了成功执行程序,你需要:
使用内置函数mysqli_real_escape_string来转义字符串中的特殊字符,以便在SQL语句中使用。
$ name = $ mysqli-&gt; real_escape_string($ name); //面向对象的风格 或者
$ name = mysqli_real_escape_string($ name,$ conn); //程序风格
清除数据并删除特殊字符。