Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在textbox中使用多个ID从mysql数据库回显电子邮件_Php_Mysql_Pdo - Fatal编程技术网

Php 在textbox中使用多个ID从mysql数据库回显电子邮件

Php 在textbox中使用多个ID从mysql数据库回显电子邮件,php,mysql,pdo,Php,Mysql,Pdo,我编写了以下脚本,它将在mysql db中搜索表单文本框中提交的某些成员ID,并为找到的每个记录编写一个mail()字符串,但它似乎不起作用,我知道我正在连接,因为如果在“连接成功”后删除所有内容,我将获得“连接成功”。如果按原样运行脚本,则会出现一个空白屏幕。对于逻辑方面的任何帮助,我们都将不胜感激 <?php $servername = ""; $username = ""; $password = ""; $db = ""; // Create connection $conn

我编写了以下脚本,它将在mysql db中搜索表单文本框中提交的某些成员ID,并为找到的每个记录编写一个mail()字符串,但它似乎不起作用,我知道我正在连接,因为如果在“连接成功”后删除所有内容,我将获得“连接成功”。如果按原样运行脚本,则会出现一个空白屏幕。对于逻辑方面的任何帮助,我们都将不胜感激

<?php

$servername = "";
$username = "";
$password = "";
$db = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $db);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
echo "Connected Successfully";

if(isset($_POST['Submit'])) {
    $MemberIDs = $_POST['MemberIDs']; // contains the values "100,107"
    $SearchIDs = array($MemberIDs);
    $SearchStr = implode(',', $SearchIDs); // returns 100,107
    $sql = "SELECT * FROM members where id in ({$SearchStr})";
    $sql->execute();
    $raw_results = $sql->fetchAll();
    $num_rows = count($raw_results);

    if($num_rows > 0 ){
    while($results = $sql->fetch($raw_results)) {
    echo "mail(".$results['name']." <".$results['requestemail'].", $Subject2, $message2, $headers2);";
    }
    else
    {
    echo "No results";
    }
    }
}

$conn->close();
?>

表单页面HTML

<form name="test" action="test-search.php" method="POST">
<input id="MemberIDs" name="MemberIDs" type="text" value="100,107">
<input type="submit" name="Submit" value="SUBMIT" />
</form>

您希望在$conn对象上执行操作,该对象是与数据库的mysqli连接。当然,我没有办法测试这个或检查语法,但这应该可以让你接近

if(isset($_POST['Submit'])) {
   // Create connection
   $conn = new mysqli($servername, $username, $password, $db);

   // Check connection
   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 
   echo "Connected Successfully";

    $MemberIDs = $_POST['MemberIDs']; // contains the values "100,107"
    $SearchIDs = array($MemberIDs);
    $SearchStr = implode(',', $SearchIDs); // returns 100,107
    $sql = "SELECT * FROM members where id in ({$SearchStr})";
    $results = $conn->query($sql);
    if( $results->num_rows > 0 ) {
        while($row = $results->fetch_assoc()) {
            echo 'mail('.$row['name'].');';
        }
    }
    else {
        echo "No results";
    }

    $results->free();
    $conn->close();
}

空白屏幕=>+btw,这个
fetchAll()
是一个PDO函数,而不是mysqli,它们不会混合在一起。告诉你,添加一个
else{echo“not set”;}
if(isset($\u POST['Submit']){…
。我打赌这会回应“未设置”。正如我所说的,你不能将PDO和mysqli混合在一起,而且你没有包含与之配套的表单,所以这只是猜测。检查错误,就像我已经给你的链接一样。你的变量$sql是一个字符串。您不能->执行()或->获取所有字符串变量。另外,您没有“查询”。所有这些,
$sql=“SELECT*FROM members where id in({$SearchStr})”$sql->execute()$原始结果=$sql->fetchAll()
不执行任何操作,
fetch()
是另一个PDO函数,但您正在连接mysqli。请参阅更新的问题i,因为更新的PDO连接和脚本有错误。然后我意识到你在使用mysqli,就像在我最初的问题中一样,它是有效的!有点我收到了两条记录,它们是echo(ed),而不是名称和电子邮件,我将尝试对其进行故障排除。再次坦克。好吧,现在我把我的原始回声声明包括在你的答案中,所有作品都如预期的那样。谢谢你抽出时间。