【问题标题】:how to write procedure to insert data in to the table in phpmyadmin?如何编写将数据插入到 phpmyadmin 中的表的程序?
【发布时间】:2013-02-07 17:38:17
【问题描述】:

我创建了如下表格:

student:
+----+------+-----------+--------+
|uid | name | user_name | branch |
+----+------+-----------+--------+
|    |      |           |        |
+----+------+-----------+--------+

我想使用过程向表中插入数据。

我写的程序是:

创建过程 add(in_name varchar(50),in_user_name varchar(50),in_branch varchar(50))
开始
插入学生 (name,user_name,branch) 值 (in_name,in_user_name,in_branch);
结束;

【问题讨论】:

    标签: mysql database stored-procedures phpmyadmin


    【解决方案1】:

    试试这个-

    CREATE PROCEDURE simpleproc (IN name varchar(50),IN user_name varchar(50),IN branch varchar(50))
    BEGIN
        insert into student (name,user_name,branch) values (name ,user_name,branch);
    END
    

    【讨论】:

    • 谢谢。,它运作良好。在通话时我只需要传递值?例如:call simpleproc ('hatjeet','jadeja','i.s.e')
    • 但是当我尝试时,这给了我以下错误:#1054 - Unknown column 'in_name' in 'field list'
    • @SureshKamrushi 是否可以在此存储过程中使用 MySQL 准备语句来插入行,或者这会使一切中断?我正在尝试这样做,但它不起作用。没有错误。没有插入记录。就是想。谢谢。
    • 这样的程序可以防止基本的 SQL 注入尝试吗?
    【解决方案2】:
    # Switch delimiter to //, so phpMyAdmin will not execute it line by line.
    DELIMITER //
    CREATE PROCEDURE usp_rateChapter12
    
    (IN numRating_Chapter INT(11) UNSIGNED, 
    
     IN txtRating_Chapter VARCHAR(250),
    
     IN chapterName VARCHAR(250),
    
     IN addedBy VARCHAR(250)
    
    )
    
    BEGIN
    DECLARE numRating_Chapter INT;
    
    DECLARE txtRating_Chapter VARCHAR(250);
    
    DECLARE chapterName1 VARCHAR(250);
    
    DECLARE addedBy1 VARCHAR(250);
    
    DECLARE chapterId INT;
    
    DECLARE studentId INT;
    
    SET chapterName1 = chapterName;
    SET addedBy1 = addedBy;
    
    SET chapterId = (SELECT chapterId 
                       FROM chapters 
                       WHERE chaptername = chapterName1);
    
    SET studentId = (SELECT Id 
                       FROM students 
                       WHERE email = addedBy1);
    
    SELECT chapterId;
    SELECT studentId;
    
    INSERT INTO ratechapter (rateBy, rateText, rateLevel, chapterRated)
    VALUES (studentId, txtRating_Chapter, numRating_Chapter,chapterId);
    
    END //
    
    //DELIMITER;
    

    【讨论】:

      【解决方案3】:

      这个方法对我有用:

      DELIMITER $$
      DROP PROCEDURE IF EXISTS db.test $$
      CREATE PROCEDURE db.test(IN id INT(12),IN NAME VARCHAR(255))
       BEGIN
       INSERT INTO USER VALUES(id,NAME);
       END$$
      DELIMITER ;
      

      【讨论】:

        猜你喜欢
        • 2017-09-22
        • 2013-01-10
        • 2012-11-26
        • 1970-01-01
        • 2013-12-22
        • 2015-01-23
        • 2016-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多