php
  • mysqli
  • 2011-05-19 88 views 0 likes 
    0
    $db = new mysqli('localhost','root','nere','deneme'); 
    
    if ($db->error) 
    exit(); 
    
    $stmt = $db->prepare("INSERT INTO deneme VALUES (?,?,?)"); 
    
    $stmt->bind_param('ssi',$adi,$soyadi,$no); 
    
    $adi='recep'; 
    $soyadi='saban'; 
    $no=5; 
    
    $stmt->execute(); 
    

    我得到了错误。php语句问题。 (mysqli)

    Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\rock\index.php on line 10 
    

    我做错了什么?

    +0

    的var_dump($语句);在$ stmt = $ db-> prepare(“INSERT INTO deneme VALUES(?,?,?)”)之后; – Danzan 2011-05-19 10:05:56

    回答

    1

    看起来你的准备声明失败了,$ stmt是错误的(你应该在那里添加一些检查)。表deneme实际存在吗?

    2

    它应该是下面的东西。你也应该把它传递给bind_param()

    if ($db->error) 
    exit(); 
    
    if ($stmt = $db->prepare("INSERT INTO deneme VALUES (?,?,?)")) { 
    $adi='recep'; 
    $soyadi='saban'; 
    $no=5; 
    
    $stmt->bind_param('ssi',$adi,$soyadi,$no); 
    
    
    $stmt->execute(); 
    } 
    

    这也是一个好主意,告诉哪些列应该在你的数据库来填充之前将值赋给变量:

    INSERT INTO deneme (column1, column2, column3) VALUES (?,?,?) 
    
    相关问题