2016-06-15 130 views
0

我做错了什么?我是一个新手,我的代码不是从MySQL数据库中拉出城市。为什么我的php脚本不能从mysql数据库中获取城市

function getXMLHTTP() { //fuction to return the xml http object 
    var xmlhttp=false; 
    try{ 
     xmlhttp=new XMLHttpRequest(); 
    } 
    catch(e) {  
     try{    
      xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(e){ 
      try{ 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(e1){ 
       xmlhttp=false; 
      } 
     } 
    } 

    return xmlhttp; 
} 


function getCity(state) {  

var strURL="get_city.php?state="+state; 
var req = getXMLHTTP(); 

if (req) { 
    req.onreadystatechange = function() { 
    if (req.readyState == 4 && req.status==200) { 
     document.getElementById("citydiv").innerHTML=req.responseText; 
      } 
     } 
    req.open("GET","get_city.php?state="+stateL,true); 
    req.send(null); 
} 
} 
<div class="row"> 
     <span class="small-6 columns" style="inline"> 
      <label>Location</label> 
      <select name="state" method="GET" id="state"  onChange="getCity(this.value)"> 
         <option value="0">Select State</option> 
         <option value=1>Alabama</option> 
         <option value=2>Alaska</option> 
         <option value="3">Arizona</option> 
         <option value=AR>Arkansas</option> 
         <option value=CA>California</option> 

         <option value="CO">Colorado</option> 
         <option value="CT">Connecticut</option> 
         <option value="DE">Delaware</option> 
         <option value="DC">District of Columbia</option> 
         <option value="FL">Florida</option> 

         <option value="GA">Georgia</option> 
         <option value="HI">Hawaii</option> 
         <option value="ID">Idaho</option> 
         <option value="IL">Illinois</option> 
         <option value="IN">Indiana</option> 

         <option value="IA">Iowa</option> 
         <option value="KS">Kansas</option> 
         <option value="KY">Kentucky</option> 
         <option value="LA">Louisiana</option> 
         <option value="ME">Maine</option> 

         <option value="MD">Maryland</option> 
         <option value="MA">Massachusetts</option> 
         <option value="MI">Michigan</option> 
         <option value="MN">Minnesota</option> 
         <option value="MS">Mississippi</option> 

         <option value="MO">Missouri</option> 
         <option value="MT">Montana</option> 
         <option value="NE">Nebraska</option> 
         <option value="NV">Nevada</option> 
         <option value="NH">New Hampshire</option> 

         <option value="NJ">New Jersey</option> 
         <option value="NM">New Mexico</option> 
         <option value="NY">New York</option> 
         <option value="NC">North Carolina</option> 
         <option value="ND">North Dakota</option> 

         <option value="OH">Ohio</option> 
         <option value="OK">Oklahoma</option> 
         <option value="OR">Oregon</option> 
         <option value="PA">Pennsylvania</option> 
         <option value="RI">Rhode Island</option> 

         <option value="SC">South Carolina</option> 
         <option value="SD">South Dakota</option> 
         <option value="TN">Tennessee</option> 
         <option value="TX">Texas</option> 
         <option value="UT">Utah</option> 

         <option value="VT">Vermont</option> 
         <option value="VA">Virginia</option> 
         <option value="WA">Washington</option> 
         <option value="WV">West Virginia</option> 
         <option value="WI">Wisconsin</option> 

         <option value="WY">Wyoming</option> 
       </select></span> 

     <span class="small-6 columns" style="inline"> 
      <select name="city" id="citydiv" > 
        <option value="">Select City</option> 
     </select></span> 
     </div> 

我的PHP文件get_city:

<?php 

$state_selected=strval($_GET['state']); 
echo $state_selected; 

$link=mysqli_connect("127.0.0.1","root","cw","locations"); 
if(mysqli_connect_errno()) { 
    printf("connect failed: %s\n",mysqli_connect_error()); 
    exit(); 
} 

$query="select city from cities where state_code= '".$state_selected."'"; 

$rs=mysqli_query($link,$query); 
?> 

<select name="city" id="citydiv" onchange="populate_utility_menu(this.value)"> 

<?php 

while($row=mysqli_fetch_array($rs)) { 
    echo "<option value=>".$row['city'];  
    echo "</option>"; 
} 
?> 
</select> 

我知道我的一些选项值的不同,那么这两个字符的字符串我想通过,但我只是检查,如果这是问题。我甚至不知道如何研究除了谷歌督察和下面的apache2 error.log文件之外发生了什么,看起来像也许php不加载mysql文件,但我很无知如何检查或直接它到了正确的路径。请帮助并记住我对此很新颖。

的Apache2 error.log中

PHP的警告:PHP启动:无法加载动态库 '/usr/lib/php5/20121212/msql.so' -/usr/lib目录/ PHP5/20121212/mSQL的.so:无法打开共享目标文件:没有这样的文件或目录在未知的行0

[星期二14月17日17:48:47.600742 2016] [mpm_prefork:通知] [pid 13981] AH00163:Apache/2.4.7 (Ubuntu)PHP/5.5.9-1ubuntu4.14已配置 - 恢复正常操作

[星期二14月17 17:48:47.600928 2016] [核心:通知] [pid 13981] AH00094:Comm和行:'/ usr/sbin/apache2'

+1

看起来像你缺少一个库 – user2182349

+0

当你得到这个查询工作时,你将开放SQL注入。使用参数化查询。另外,你将要生成的'option'将会失效,不会有'value'。 – chris85

+0

我正试图为我的数据库中的状态码生成一个2个字符的字符串。请您详细说明为什么我的选项值不正确?而通过sql注入,你的意思是人们可以通过恶意输入完成表单来破坏数据库?我如何通过添加输入认证来避免这种情况(这是我获得其他工作后的下一步)? – user3499087

回答

0

您是否升级您的PHP版本?这可能是您的配置文件仍然指向旧的位置路径。试试这个:

sudo apt-get install php5-mcrypt 
sudo apt-get install php5-mysql 
+0

现在我只是感到困惑,不知道我在做什么。我尝试了这两个命令,它做了一些事情,但仍然没有工作。出于某种原因,我无法拉起我的localhost/php.info,或者我做错了吗? – user3499087

+0

你收到什么错误信息? – Adrian

相关问题