2017-03-24 5 views
-3

i Fehler haben, wenn ich Einfügen von Daten in mysql von PDO versuchen, wenn ich Funktion erstellenFehler mit Insert Daten in mysql PDO

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sadas' in 'field list'' in /opt/lampp/htdocs/site1/admin/functions/function.php:13 Stack trace: #0 /opt/lampp/htdocs/site1/admin/functions/function.php(13): PDO->query('insert into sub...') #1 /opt/lampp/htdocs/site1/admin/functions/function.php(31): add_subject('sadas') #2 {main} thrown in /opt/lampp/htdocs/site1/admin/functions/function.php on line 13 

Code

<?php 
 
try { 
 
    $connection=new PDO('mysql:host=127.0.0.1;dbname=alshba7','root','987654alshba'); 
 
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
 

 
} catch (PDOException $e) { 
 
    die('there is problem'); 
 

 
} 
 
    
 
function add_subject ($title){ 
 
     global $connection; 
 
$add=$connection->query("insert into sub (title) values($title)"); 
 
     if(isset($add)){ 
 
     echo 'Done'; 
 
     } 
 
      } 
 
add_subject ('sadas'); 
 
?>

wer lösen mein Problem ?? Ich werde Ihre Hilfe zu schätzen wissen

+1

Sie sind nicht _really_ mit PDO hier ... nicht in der Art, wie Sie sollten, zumindest. Wenn Sie die Abfragezeichenfolge einschließlich der Daten auf einmal zusammenstellen, lassen Sie sich hier für die SQL-Injektion öffnen. Gehe zu vorbereiteten Aussagen nach. – CBroe

+3

Ich würde auch Ihr db-Passwort ändern, bedenken Sie, dass dieses durchgesickert ist. –

Antwort

0

Das ist nicht, wie Sie Daten mit PDO einfügen, müssen Sie vorbereitete Anweisungen verwenden. Sie werden also kein Problem mit Anführungszeichen haben.

<?php 
try { 
    $connection=new PDO('mysql:host=127.0.0.1;dbname=alshba7','root','987654alshba'); 
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

} catch (PDOException $e) { 
    die('there is problem'); 

} 

function add_subject ($title){ 
     global $connection; 
$add=$connection->prepare("INSERT INTO sub (title) VALUES(?)"); 
    if($add->execute([$title])){ 

     echo "done"; 
    } 

      } 
add_subject ('sadas'); 
?>