jpeplinski Posted July 27, 2011 Share Posted July 27, 2011 I just got everything setup with PHP, MySQL, and Apache. I created a very simple test DB which I can connect to fine as well as execute a query against and get what seems to be some results back. However, when doing the mysql_fetch_assoc, it returns an empty row (false). On the echo below, I see "Number of rows is 3". I see the rest of my echos writing out, but it never executes the echo in the while loop when retrieving the records from the resultset. What am I doing wrong? Here is the code: <?php # Script 9.2 - mysqli_connect. php // This file contains the database access information. // This file also establishes a connection to MySQL, // selects the database, and sets the encoding. // Set the database access information as constants: DEFINE ('DB_USER' , 'xout') ; DEFINE ('DB_PASSWORD' , 'xout' ) ; DEFINE ('DB_HOST' , 'xout' ) ; DEFINE ('DB_NAME' , 'test') ; echo ' <h1>starting script! </h1>'; // Make the connection: $dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ( ' Could not connect to MySQL: ' . mysqli_connect_error() ) ; echo ' <h1>got past the connection! </h1>'; $q = "SELECT * FROM t_schema.t_table"; $r = @mysqli_query ($dbc, $q); // Run the query and get a result-set. echo ' <h1>Got past the query execution! </h1>'; if ($r) //If data in the result set { // If the query ran OK. echo '<h1>Got some Results!</h1>'; $num = mysqli_num_rows($r) ; echo '<h1>Number of rows is ' . $num . '</h1>'; while ($row = mysql_fetch_assoc ($r)) { echo '<h1>Inside Loop</h1>'; } } //end if ($r) else { echo ' <h1>Error querying the data from the test DB! </h1>'; echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>'; } mysqli_close( $dbc) ; //the end ?> Quote Link to comment https://forums.phpfreaks.com/topic/242983-mysql_fetch_assoc-not-returning-records-but-mysqli_num_rows-shows-3/ Share on other sites More sharing options...
marcus Posted July 27, 2011 Share Posted July 27, 2011 Don't suppress your errors... $r = mysqli_query($dbc,$q) or die(mysqli_error()); Quote Link to comment https://forums.phpfreaks.com/topic/242983-mysql_fetch_assoc-not-returning-records-but-mysqli_num_rows-shows-3/#findComment-1248013 Share on other sites More sharing options...
Pikachu2000 Posted July 27, 2011 Share Posted July 27, 2011 You can't mix mysql_* and mysqli_* extension functions. Use one or the other. Also, you should be developing on a system with error_reporting = -1 and display_errors = On in your php.ini file. Quote Link to comment https://forums.phpfreaks.com/topic/242983-mysql_fetch_assoc-not-returning-records-but-mysqli_num_rows-shows-3/#findComment-1248023 Share on other sites More sharing options...
jpeplinski Posted July 27, 2011 Author Share Posted July 27, 2011 OK, I turned on the errors in php.ini and restarted apache - are the errors written to a log somewhere or should they display with alert messages...Other? Sorry, I am a bit new with php. As a side note, I changed all the mysqli calls to mysql to be consistent. However, I cannot get the page to load at all in Firefox when I do this. the same is true if I change them to all mysqli calls. However, If I leave it like I had it, it runs, however I get the weird situation described in the earlier post. What is the difference between mysql and mysqli function calls? Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/242983-mysql_fetch_assoc-not-returning-records-but-mysqli_num_rows-shows-3/#findComment-1248074 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.