Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySql查询语法错误,尽管一切正常_Php_Mysql - Fatal编程技术网

Php MySql查询语法错误,尽管一切正常

Php MySql查询语法错误,尽管一切正常,php,mysql,Php,Mysql,所有服务器详细信息都正确放置,并且连接确实正确发生,我似乎找不到输出中显示的语法错误 <?php ob_start(); $phn=$_GET['phn']; $con = mysql_connect("<server>","<user>","<pass>") or die('error' . mysql_error()); $db_selected = mysql_select_db('<db name>',

所有服务器详细信息都正确放置,并且连接确实正确发生,我似乎找不到输出中显示的语法错误

<?php
    ob_start();
    $phn=$_GET['phn'];
    $con = mysql_connect("<server>","<user>","<pass>") or die('error' . mysql_error());
    $db_selected = mysql_select_db('<db name>', $con);
    if (!$db_selected) {
        die ('Can\'t use user : ' . mysql_error());
    }
    $characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
     $key= '';
     for ($i = 0; $i < 9; $i++) {
          $key.= $characters[rand(0, strlen($characters) - 1)];
     }
     echo $key;
    $sql="INSERT INTO buser (phone, key) VALUES (".$phn.",'".$key."')";
    if($result = mysql_query($sql ,$con) or die ('Error: '.mysql_error ()))
    {
    $q="SELECT * FROM buser WHERE phone=$phn";
    $idd=mysql_query($q,$con) or die ('Error: '.mysql_error ());
    while($row = mysql_fetch_assoc($idd))
      {
      $id=$row['bid'];
      }
    }
     ?>
键是一个。必须将其括在反标记中,才能将其用作列或表标识符

$sql="INSERT INTO buser (phone, `key`) VALUES (".$phn.",'".$key."')";
您的脚本易受当前形式的SQL注入攻击。至少,您必须对
$phn
的值调用
mysql\u real\u escape\u string()

$phn = mysql_real_escape_string($_GET['phn']);  

从长远来看,考虑切换到支持准备好的语句的API,比如MySQL或PDO。

< P>代码>键<代码>是一个。必须将其括在反标记中,才能将其用作列或表标识符

$sql="INSERT INTO buser (phone, `key`) VALUES (".$phn.",'".$key."')";
您的脚本易受当前形式的SQL注入攻击。至少,您必须对
$phn
的值调用
mysql\u real\u escape\u string()

$phn = mysql_real_escape_string($_GET['phn']);  

从长远来看,考虑切换到支持准备好的语句的API,比如MyQuLi或PDO。< /P>可能的重复的“SpAPNILDICANAR”PDO和“准备语句”读取的副本。StackOverflow上有很多答案。@SwapnilDinkar阅读了PDO和“准备好的声明”。StackOverflow上有很多答案。