MYSQL PHP表单问题 桌子{ 字体大小:12px;}
您应该检查MYSQL PHP表单问题 桌子{ 字体大小:12px;},php,mysql,forms,Php,Mysql,Forms,您应该检查$result是否为结果,而不是false。很有可能您的某个查询触发了错误,您可以使用。您的mysql\u query()调用失败,这就是为什么会出现该错误,因为$result是布尔值FALSE。这可能是因为查询中有语法错误-查询中缺少一个结束单引号” 改变 <style type="text/css"> table { font-size:12px;} </style> <?php //Verbindung require_once (
$result
是否为结果,而不是false
。很有可能您的某个查询触发了错误,您可以使用。您的mysql\u query()
调用失败,这就是为什么会出现该错误,因为$result
是布尔值FALSE
。这可能是因为查询中有语法错误-查询中缺少一个结束单引号”
改变
<style type="text/css">
table {
font-size:12px;}
</style>
<?php
//Verbindung
require_once ("connect/mysql_connect.php");
$poll = mysql_connect($hostname_poll, $username_poll, $password_poll) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db ("online_reg");
global $poll;
$sql = "SELECT * FROM `registration_extern_download` WHERE shop='Simmarket'";
$result = mysql_query($sql);
if ($action == 'reset')
{
$result = mysql_query("update online_reg set modify = now(), activation_key_1 = '', activation_key_2 = '',activation_key_3 = '' where id = '" . $id . "");
}
//Ausgabe
echo"<table border='1' style='font-size 5pt'>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>
<td>$row[id]</td>
<td>$row[customer_email]</td>
<td>$row[products_serial]</td>
<td>$row[activation_key_1] </td>
<td>$row[activation_key_2] </td>
<td>$row[activation_key_3] </td>
<td><form id='form1' name='form1' method='post' action=simmarket.php?action=reset&id=$row[id]><input type='submit' value='Zurucksetzen' name='submit' /></form></td>
</tr>";
}
echo"</table>";
?>
到
…但请注意不要向现实世界中的任何人显示mysql\u error()
的内容,这仅用于调试目的
编辑
正如outis正确指出的,您已经用
UPDATE
语句的结果覆盖了$result
变量的内容,因此它将始终是布尔TRUE
或FALSE
。您或者需要重命名第二个$result
变量(如我更正的示例中所述),或者完全删除它-您可能不需要捕获返回值以供以后使用,因此您可以只包装mysql\u查询()
调用if
语句,并在查询时采取适当的行动。将以下内容放入if语句中
if (!$updateResult = mysql_query("UPDATE `online_reg` SET `modify` = now(), `activation_key_1` = '', `activation_key_2` = '', `activation_key_3` = '' WHERE `id` = '".mysql_real_escape_string($id)."'")) die('MySQL Error: '.mysql_error());
echo”“;
while($row=mysql\u fetch\u assoc($result)){
回声“
$row[id]
$row[客户电子邮件]
$row[产品系列]
$row[激活\u键\u 1]
$row[激活\u键\u 2]
$row[激活\u键\u 3]
";
下面是使用PDO和类(DBConnection)来处理PDO连接和数据库用户凭据的脚本重写
echo"<table border='1' style='font-size 5pt'>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>
<td>$row[id]</td>
<td>$row[customer_email]</td>
<td>$row[products_serial]</td>
<td>$row[activation_key_1] </td>
<td>$row[activation_key_2] </td>
<td>$row[activation_key_3] </td>
<td><form id='form1' name='form1' method='post' action=simmarket.php?action=reset&id=$row[id]><input type='submit' value='Zurucksetzen' name='submit' /></form></td>
</tr>";
请注意,调用mysql\u error
的结果不应输出给非管理员用户,否则在输出HTML时不应使用code.。修复SQL语法错误是不够的,因为运行UPDATE
语句将用布尔值覆盖SELECT
的结果,仍然会导致获取失败。@outis我知道,这就是为什么我说“仅用于调试目的!”;-)回想起来,我想我应该更正查询语法或者添加或die
,但是现在有点晚了……关于$result
问题,我没有注意到,我会更正我的答案。在$id
之后是否缺少'
?mysql驱动程序已经过时,正在被弃用的路上。Sw渴望使用PDO和use,这将修复SQL语句中的语法错误和可能存在的漏洞。不要使用;只选择所需的列。不是合适的字体大小单位–请使用“em”或“%”。可能重复
echo"<table border='1' style='font-size 5pt'>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>
<td>$row[id]</td>
<td>$row[customer_email]</td>
<td>$row[products_serial]</td>
<td>$row[activation_key_1] </td>
<td>$row[activation_key_2] </td>
<td>$row[activation_key_3] </td>
<td><form id='form1' name='form1' method='post' action=simmarket.php?action=reset&id=$row[id]><input type='submit' value='Zurucksetzen' name='submit' /></form></td>
</tr>";
<?php
$db = DBConnection::connect(array('db' => 'online_reg'));
if ($action == 'reset') {
$resetQuery = $db->prepare(
"UPDATE registration_extern_download
SET modify = NOW(), activation_key_1 = '',
activation_key_2 = '',activation_key_3 = ''
WHERE id = ?");
try {
$resetSucceeded = $resetQuery->execute(array($id));
} catch (PDOException $exc) {
?><p class="error">Reset failed.</p><?php
/* A reason for the error & how it can be fixed should be added to output, if appropriate. */
}
}
# query could be parameterized on 'shop' field and re-used elsewhere
$registrations = $db->query(
"SELECT id, customer_email, products_serial,
activation_key_1, activation_key_2, activation_key_3
FROM `registration_extern_download`
WHERE shop='Simmarket'");
//Ausgabe
try {
?>
<table class="registration">
<?php foreach ($registrations as $idx => $row): ?>
<tr>
<?php foreach ($row as $field => $value): ?>
<td><?php echo $value ?></td>
<?php endforeach; ?>
<td><form name="form<?php echo $idx; ?>" method="post"
action="simmarket.php?action=reset&id=<?php echo htmlspecialchars($row['id']) ?>">
<input type="submit" value="Zurucksetzen" name="submit" />
</form></td>
<?php endforeach; ?>
</table>
<?php
} catch (PDOException $exc) {
/* Log error & inform user. If error is user-fixable, tell user what went wrong
* and how to fix it.
*/
}