mysql hatası sonrası verileri eklerken

3 Cevap php

Benim hata bu mysql sorguda nerede olduğunu bilmiyorum

$sql = "INSERT INTO `events` ( `owner` ,  `title` ,  `tagline` ,  `location` ,  `street` ,  `citytown` ,  `startdate` ,  `enddate` ,  `active`  ) VALUES(  '{$username}' ,  '{$data[title]}' ,  '{$data['tagline']}' ,  '{$data['location']}' ,  '{$data['street']}' ,  '{$data['citytown']}' ,  '{$data['startdate']}' ,  '{$data['enddate']}' ,  '{$data['active']}'  ) "; 
mysql_query($sql) or die(mysql_error());

Bu benim i yakın sözdizimi bir hata var söyler ... ve sonra ben kesme işareti var benim verilerin bir kısmını verir

(Örnek: title = Dave Partisi)

3 Cevap

Eğer veritabanında onları yerleştirmeye önce dizeleri tek tırnak kaçmak istiyorum.

Muhtemelen mysql_real_escape_string on each element of your $data dizi kullanmak isteyeceksiniz.

Örneğin:

$escaped_data = array();

foreach ($data as $key => $val) {
    $escaped_data[$key] = mysql_real_escape_string($val);
}

$sql = "INSERT INTO `events` ( `owner` ,  `title` ,  `tagline` ,  `location` ,  `street` ,  `citytown` ,  `startdate` ,  `enddate` ,  `active`  ) VALUES(  '{$username}' ,  '{$escaped_data[title]}' ,  '{$escaped_data['tagline']}' ,  '{$escaped_data['location']}' ,  '{$escaped_data['street']}' ,  '{$escaped_data['citytown']}' ,  '{$escaped_data['startdate']}' ,  '{$escaped_data['enddate']}' ,  '{$escaped_data['active']}'  ) "; 
mysql_query($sql) or die(mysql_error());

Bir kenara, SQL injection için PHP belgelerine bir göz atın.

Eğer düzgün kaçtı tüm değerlerine sahip olduğundan emin olun.

mysql_real_escape_string

mysql_escape_string($data['title']);

veya

mysql_real_escape_string($data['title'], $dbconn);