I'm trying to take the data I have from mySQL database and have it replace a certain string in a .txt file. I feel like I'm close but the string I want to replace is only getting replaced with a blank space.
<?php
$servername = "localhost";
$username = "rob1289";
$password = "databasetest";
$dbname = "RobertCornell2";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM name ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
//"" . $row["first"]. "<br>";
$fname_from_db = $row["first"];
$mname_from_db = $row["middle"];
//echo $row["id"];
}
} else {
echo "0 results";
echo "<br/>Error: " . mysqli_error($conn);
}
$myFile = "freewill.doc";
$fh = fopen($myFile, 'a') or die("can't open file");
$fname_from_db = $row["first"];
$mname_from_db = $row["middle"];
$placeholders = array('fin', 'min');
$namevals = array($fname_from_db);
$path_to_file = 'freewill.doc';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace($placeholders,$namevals,$file_contents);
file_put_contents($path_to_file,$file_contents);
fclose($fh);
mysqli_close($conn);
?>
Could it be because $namevals
(replace) has one element and $placeholders
(search) has two?
From the PHP doc:
If replace has fewer values than search, then an empty string is used for the rest of replacement values.