Php 在while循环中运行mysqli查询
我有以下php代码:Php 在while循环中运行mysqli查询,php,Php,我有以下php代码: <?php //include database include 'db.php'; //grab the emails from the database $sql = "SELECT email FROM `emails`"; $result = mysqli_query($con, $sql); while($row = mysqli_fetch_array($result, MYSQL_ASSOC)){ // update the database
<?php
//include database
include 'db.php';
//grab the emails from the database
$sql = "SELECT email FROM `emails`";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
// update the database
//sanitinzw
$row = mysqli_real_escape_string($con, $row['email']);
//mail the emails
$to = $row;
$subject = 'HELLOO';
$message = 'alooooo';
$headers = 'From: admin@admin.com' . "\r\n" .
'Reply-To: admin@admin.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
?>
它工作得很好;然而,当我向它添加查询时,只有数据库中的第一封电子邮件发送到这里,它看起来像什么
<?php
//include database
include 'db.php';
//grab the emails from the database
$sql = "SELECT email FROM `emails`";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
// update the database
//sanitinzw
$row = mysqli_real_escape_string($con, $row['email']);
//mail the emails
$to = $row;
$subject = 'hello';
$message = 'aloooooo';
$headers = 'From: admin@admin.com' . "\r\n" .
'Reply-To: admin@admin.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
$sql = "UPDATE `emails` SET times_used = times_used + 1 WHERE email = '$row' ";
$result = mysqli_query($con, $sql);
}
?>
您正在重写$result
变量,该变量也用于while循环。在第一次迭代之后,$result
被设置为更新查询的结果,因此没有其他行可以获取
您可以这样写,例如:
$sql = "UPDATE `emails` SET times_used = times_used + 1 WHERE email = '$row' ";
$result2 = mysqli_query($con, $sql);
这应该是可行的(如果没有其他错误)。您正在重写$result
变量,该变量也在while循环中使用。在第一次迭代之后,$result
被设置为更新查询的结果,因此没有其他行可以获取
您可以这样写,例如:
$sql = "UPDATE `emails` SET times_used = times_used + 1 WHERE email = '$row' ";
$result2 = mysqli_query($con, $sql);
这应该是可行的(如果没有其他错误)。您正在重写$result
变量,该变量也在while循环中使用。在第一次迭代之后,$result
被设置为更新查询的结果,因此没有其他行可以获取
您可以这样写,例如:
$sql = "UPDATE `emails` SET times_used = times_used + 1 WHERE email = '$row' ";
$result2 = mysqli_query($con, $sql);
这应该是可行的(如果没有其他错误)。您正在重写$result
变量,该变量也在while循环中使用。在第一次迭代之后,$result
被设置为更新查询的结果,因此没有其他行可以获取
您可以这样写,例如:
$sql = "UPDATE `emails` SET times_used = times_used + 1 WHERE email = '$row' ";
$result2 = mysqli_query($con, $sql);
这应该可以(如果没有其他错误)。不确定mysqli\u real\u escape\u string
是否作为函数存在。。。或者至少php.net不知道。。更详细地说,使用mysql\u real\u escape\u string
(我猜您想要使用的)参数的作用是相反的:
$row = mysql_real_escape_string($row['email'],$con);
不确定mysqli\u real\u escape\u string
是否作为函数存在。。。或者至少php.net不知道。。更详细地说,使用mysql\u real\u escape\u string
(我猜您想要使用的)参数的作用是相反的:
$row = mysql_real_escape_string($row['email'],$con);
不确定mysqli\u real\u escape\u string
是否作为函数存在。。。或者至少php.net不知道。。更详细地说,使用mysql\u real\u escape\u string
(我猜您想要使用的)参数的作用是相反的:
$row = mysql_real_escape_string($row['email'],$con);
不确定mysqli\u real\u escape\u string
是否作为函数存在。。。或者至少php.net不知道。。更详细地说,使用mysql\u real\u escape\u string
(我猜您想要使用的)参数的作用是相反的:
$row = mysql_real_escape_string($row['email'],$con);
不确定mysqli\u real\u escape\u字符串是否作为函数存在。。。或者至少php.net不知道。是的,它工作得很好。第一段代码工作得很完美。当我添加sql时,它会出错,只会发送电子邮件并更新数据库中的第一封电子邮件。不确定mysqli\u real\u escape\u字符串是否作为函数存在。。。或者至少php.net不知道。是的,它工作得很好。第一段代码工作得很完美。当我添加sql时,它会出错,只会发送电子邮件并更新数据库中的第一封电子邮件。不确定mysqli\u real\u escape\u字符串是否作为函数存在。。。或者至少php.net不知道。是的,它工作得很好。第一段代码工作得很完美。当我添加sql时,它会出错,只会发送电子邮件并更新数据库中的第一封电子邮件。不确定mysqli\u real\u escape\u字符串是否作为函数存在。。。或者至少php.net不知道这一点。是的,它工作得很好。第一段代码工作得很完美。当我添加sql时,它会出错,只发送电子邮件并更新数据库中的第一封电子邮件