pepelepew1962 Posted February 22, 2014 Share Posted February 22, 2014 require("dbcon.php"); // Check for errors if(mysqli_connect_errno()) { echo mysqli_connect_error(); } // Create a prepared statement if($stmt = $mysqli -> prepare ("SELECT id, username, password FROM users WHERE password=?")) { // Bind parameters s - String, b - Boolean, i - Integer etc $password='123'; $stmt -> bind_param("s", $password); // Execute it $stmt -> execute(); // Bind result variables $stmt->bind_result($id,$username,$password); // Fetch the result of the query while($stmt->fetch()) { echo $id . ' - ' . $password . ' - ' . $username; echo "<br />"; } // Close statement $stmt -> close(); } // Close connection $mysqli -> close(); Hello: I am trying to convert to mysqli and on the net I constant see examples of freeing the memory after running the query. All the examples I have seen are based on 1 result from the query. Well I have multiple fields in my bind results and can not get something to the effect of: mysqli_free_result ($result) Can anyone help me here please. How can I free the results in my code? Quote Link to comment https://forums.phpfreaks.com/topic/286422-mysqli-free-results/ Share on other sites More sharing options...
.josh Posted February 22, 2014 Share Posted February 22, 2014 Seems to me that mysqli_free_result frees all of the result memory, so there's no specifying individually bound results. IOW binding results to vars just creates individual references to the core result source. Sidenote: perhaps it might be helpful if you provided more background to what you're trying to do. As it stands in your code, there's no real gain from doing this.. or from closing the statement/connection at the end of your script like that. php automatically closes and frees everything at the end of script execution. The only time it's really beneficial to do this sort of thing is if you're working with a database and getting results.. but then the script still has a lot of stuff to do afterwards and you don't want the db stuff sitting in memory causing the rest of the script to run slower. Quote Link to comment https://forums.phpfreaks.com/topic/286422-mysqli-free-results/#findComment-1470109 Share on other sites More sharing options...
Augury Posted February 22, 2014 Share Posted February 22, 2014 (edited) $result = NULL; would free something up. I feel as if freedom to submit arbitrary data that was-or-wasnot asked for is a possible danger to the integrity of a php site. The mysql "connection" should be just a DB password in the php's mind without overhead -- barring negligent SQL commands to your server. If you really want it free, shutting down the server is defunct. while($stmt->fetch()) { echo $id . ' - ' . $password . ' - ' . $username; echo "<br />" } The fetch process would have contained in the php's backend. It is calmer approach. Is a liability because the MySql DB server does not intend to server a single client especially if he is rate limiting. Cynical, but these are theorys that have been suggested to me. The backends left me with little to cling to data wise when they were asked to do anything at all. The attraction is that it is a convenient storage and organizational friend that may slow things down closer to the rate at which they are used. Password oriented retrieval is an interesting venture there, btw. > Edited February 22, 2014 by Augury Quote Link to comment https://forums.phpfreaks.com/topic/286422-mysqli-free-results/#findComment-1470111 Share on other sites More sharing options...
pepelepew1962 Posted February 23, 2014 Author Share Posted February 23, 2014 Thank you for your response. My goal is to switch to MySQLi, OOP and use prepared statements. I think I mixed a few things up here between oop and procedurals I just created a small table so that I can get a format down and then copy to the real files. Quote Link to comment https://forums.phpfreaks.com/topic/286422-mysqli-free-results/#findComment-1470128 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.