du0173 2014-11-04 19:13
浏览 115
已采纳

MySQL中的INSERT不起作用

I have a problem with a MySQL request. Insertion doesn't work overnight. I don't know why.

mysql_connect('localhost', 'root', '') or die("Impossible de se connecter : ".mysql_error());
mysql_select_db('db');
$name = mysql_query("SELECT name FROM fruitandvegetable WHERE name='".mysql_real_escape_string(stripcslashes($_POST['name']))."'") or die('Erreur :'.mysql_error());

if (mysql_num_rows($name) != 0) {
    $doublonName = "The name already exists";
}

$nombre = mysql_query("SELECT nombre FROM fruitandvegetable WHERE nombre='".mysql_real_escape_string(stripcslashes($_POST['nombre']))."'") or die('Erreur :'.mysql_error());

if (mysql_num_rows($nombre) != 0) {
    $doublonNombre = "The number already exists";
} else {
    $quer1y = mysql_query("INSERT INTO fruitandvegetable VALUES('', '".$_POST['name']."', 'color', '$month', '$description', '".$_POST['nombre']."')");
}

thanks for your help.

  • 写回答

1条回答 默认 最新

  • dongyinpan9284 2014-11-04 19:15
    关注

    You have to specify the column names:

    $quer1y = mysql_query("INSERT INTO fruitandvegetable(column1,col2,col3,...) VALUES('', '".$_POST['name']."', 'color', '$month', '$description', '".$_POST['nombre']."')"); 
    

    Plus, you should switch to PDO or MySQLi, as mysql_* functions are deprecated, and you must escape every user input or (better) use prepared statements to prevent SQL injection:

    $connect = mysqli_connect("localhost","root","","db");
            $name = mysqli_query($connect,"SELECT name FROM fruitandvegetable WHERE name='".mysqli_real_escape_string($connect,stripcslashes($_POST['name']))."'")
            or die('Erreur :'.mysqli_error());
    
            if(mysqli_num_rows($name) != 0)
            {
    
            $doublonName = "The name already exists";
    
            }
    
            $nombre = mysqli_query($connect,"SELECT nombre FROM fruitandvegetable WHERE nombre='".mysqli_real_escape_string($connect,stripcslashes($_POST['nombre']))."'")
            or die('Erreur :'.mysqli_error());
    
            if(mysqli_num_rows($nombre) != 0)
            {
    
            $doublonNombre = "The number already exists";
    
            }         
    
            else  
            {   
    
            $quer1y = mysqli_query($connect,"INSERT INTO fruitandvegetable VALUES('', '".mysqli_real_escape_string($connect,$_POST['name'])."', 'color', '".mysqli_real_escape_string($connect,$month)."', '".mysqli_real_escape_string($connect,$description)."', '".mysqli_real_escape_string($connect,$_POST['nombre'])."')"); 
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题