AlexC Posted July 28, 2013 Share Posted July 28, 2013 As the query works fine in phpMyAdmin or MySQL workbench, I am assuming at present it is a php problem. I have the following code being used to uniquely identify a person from a form entry, if (mysqli_connect_errno($condb)) { echo 'Failed to connect to MySQL: ' . mysqli_connect_error(); } else {echo 'connected';} //****debug 1 $firstname = preg_replace('/[^a-zA-Zs]/', '', $_POST['idfirstname'] ); $lastname = preg_replace('/[^a-zA-Zs]/', '', $_POST['idlastname'] ); $streetno = preg_replace('/[^0-9s]/', '', $_POST['idhouseno'] ); $telephone = preg_replace('/[^0-9s]/', '', $_POST['idtelephone'] ); // echo '<br>'.$firstname.', '.$lastname.', '.$streetno.', '.$telephone; //****debug 2 $query="SELECT .....;"; echo '<br><b>Query for user id:</b> <br>'.$query; //****debug 3 $result = mysqli_query($condb,$query); $count = mysqli_num_rows($result); echo '<br><b> row count:</b>'.$count.' - result: '.$result. '!'; //****debug 4 // -------------------------------------------------------------------------------------------------------------- // Check for unique data /* if($count == 1) { // unique ID successfull while($row = mysqli_fetch_array($resultA)) { ...... Code was working fine this morning and I was refining the code further on and adding other extraction options in new pages based on having a unique identification. However it has suddenly stopped working. Other parts of the site, not relying on this identification are working fine. Debug point 1 comes up fine as 'connected', the data at debug 2 is fine and if I cut and paste the query output in the browser from debug point 3 into phpMyAdmin or mySQL workbench, no problems, I get the results expected. However debug point 4 does not materialise. If I comment out the line $result = mysqli_query($condb,$query); debug 4 comes up, but obviously not with any results. I'm using Aptana workbench and that is not flagging any syntax errors. I have tried rewriting the line and cut and pasted a similar mysqli_query line from other pages where it is working in case a funny character had got into the code, but to no effect. As I have lots of other similar code instances still working fine, this is causing some frustration. Any ideas on what I am hoping is an obvious error that I just can't see, very much appreciated. Link to comment Share on other sites More sharing options...
niche Posted July 28, 2013 Share Posted July 28, 2013 Add mysqli_error() and let us know what the error message is if any. http://www.w3schools.com/php/func_mysqli_error.asp Link to comment Share on other sites More sharing options...
AlexC Posted July 29, 2013 Author Share Posted July 29, 2013 Tried adding mysqli_error() and could not get any errors reported. I did add some code to simulate a successful query and the other three queries in the code worked fine. So I tried pasting in one of the $result = mysqli_query($dbAcon,$query) statements that worked for the other queries with no progress. The query causing the problem did have a join in it, but as I said, had been working fine. I was going to split the query to take out the join for other reasons, so I thought I'd try that as I was planning to run a demo on Tuesday and it is now working. I then did a quick survey of my other pages and found that the only places where I use joins I have created views in the database first. That's the only difference I can see. Although why it should work and then not work.... So I have a solution, but not a satisfactory reason for the failure. many thanks for answering. Link to comment Share on other sites More sharing options...
birbal Posted July 29, 2013 Share Posted July 29, 2013 you should check if query is successfully executing or not. to do so you need to use mysqli_error() with mysql_query() too as mentioned by niche. If your query has external unescaped input, it could break the query. Link to comment Share on other sites More sharing options...
AlexC Posted July 29, 2013 Author Share Posted July 29, 2013 That's part of the problem - I'm not seeing any error returns at all. I see one echo, with the sqli_error, after the problem query statement and that's it. As far as I can see there is still a lot of valid HTML output that should come out on further echoes but if you view the source code in the browser there is just nothing else after the sqli_error echo, not even the closing Body and HTML tags. Link to comment Share on other sites More sharing options...
justsomeguy Posted July 29, 2013 Share Posted July 29, 2013 It sounds like there's a fatal error. Make sure you're seeing all error messages from PHP, add this to the top: ini_set('display_errors', 1); error_reporting(E_ALL); 1 Link to comment Share on other sites More sharing options...
AlexC Posted August 4, 2013 Author Share Posted August 4, 2013 Thanks, that looks like a very useful tip. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now