2016-03-04 53 views
0

我想动态地将数据插入到我的phpmyadmin mysql数据库。所以我从用户那里获取值,然后运行mysqli的插入命令来插入数据。插入命令的mysql不工作,当我尝试动态插入

但我的插入命令不起作用。这里是我的代码:

$rest_name = $_SESSION['rest_name']; 

    $order = $_SESSION['order']; 
    $user = $_SESSION['username']; 
    $bill = $_SESSION['bill']; 
    $ctime = date("H:i:s", strtotime($_POST['time'])); 
     $insert_sql = "INSERT INTO '$rest_name' ('orders','amount', 
'time','username') VALUES('$order', '$bill', '$ctime','$user')'; 
    echo $insert_sql; 
     if(mysqli_query($conn,$insert_sql)){ 
      echo "done"; 
     } 
      else{ 
       echo "not done"; 
      } 

我有6列在数据库中,但我需要插入4列只有其他两个被设置为默认值。

+1

问题高亮告诉你的问题之一(你没有关闭与'“' - 双) – FirstOne

+0

其他问题,SQL注入,引用(在PHP),不检查。错误。http://php.net/manual/en/mysqli.error.php http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – chris85

回答

0

有在$ INSERT_SQL端缺少报价,试试这个来代替:

$rest_name = $_SESSION['rest_name']; 

$order = $_SESSION['order']; 
$user = $_SESSION['username']; 
$bill = $_SESSION['bill']; 
$ctime = date("H:i:s", strtotime($_POST['time'])); 
    $insert_sql = "INSERT INTO '$rest_name' ('orders','amount','time','username') VALUES('$order', '$bill', '$ctime','$user')'"; 
    echo $insert_sql; 
    if(mysqli_query($conn,$insert_sql)){ 
     echo "done"; 
    } 
     else{ 
      echo "not done"; 
     } 

另外,与你的方法,你可以用SQL注入受罪!尽量避免以这种方式插入数据!你应该插入这样的:

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); 
$stmt->bind_param('s', $name); 

$stmt->execute(); 

$result = $stmt->get_result(); 
while ($row = $result->fetch_assoc()) { 
    // do something with $row 
} 
+1

这仍然是无效和不安全的SQL。 – chris85

+0

它仍然没有工作..我包括引号 –

+0

@GopalChandak为什么不看看链接的答案+100 upvotes?如果PHP报价问题真的挂你,那么你真的需要学习看看你的错误日志.. – chris85