我想寫一些使用PHP的數據庫,但如果我嘗試使用mysql_real_escape_string()我沒有得到任何錯誤,但沒有得到保存到數據庫,我不知道爲什麼= /特別因爲我做了在另一個PHP文件相同的,它的工作完美...爲什麼不會mysql_real_escape_string()工作?
<?php
if(isset($_POST['reporte']))
$falla = $_POST['reporte'];
else
$falla = "";
if(!isset($falla)){
echo '<font color="red">Intentó enviar una forma vacía. Por favor intente de nuevo.</font>';
}else{
$fecha = mysql_real_escape_string(stripslashes($_POST['fecha']));
$usuario = mysql_real_escape_string(stripslashes($_POST['usuario']));
connection...
$sql = "INSERT INTO $tbl_name(usuario, comentario, fecha, estado) VALUES('$usuario','$falla','$fecha', '0')" or die('mysql_error()');
現在我不檢查,如果「出生日期」或「usuario」是空的,因爲它們在形式通過一個隱藏字段發送。
編輯
我也還是有沒有錯誤,並沒有進入該數據庫交換機= /我在看的文件,但我很奇怪,因爲我以前做過完全相同的方式和它的工作...哈哈...
編輯2
ÿ ES我有一個
mysql_query($sql) or die('Error SQL !'.$sql.'<br>'.mysql_error());
是的,我已經設置了$ tbl_name與連接一起:
$host="localhost";
$username="user";
$password="pass";
$db_name="cosa";
$tbl_name="reportes";
,我已經做了數據庫監視器中的檢查並打印它...它返回確定...但是,「消毒」$ falla是什麼意思?我承認注射,但我本身對PHP很新。
編輯3
我用死只是爲了測試,但沒有錯誤顯示它的功能順利,如果我使用「mysql_real_escape_string()」
只是將不插入一件事
編輯4
這是我當前的代碼:
<?php
if(isset($_POST['reporte']))
$falla = $_POST['reporte'];
else
$falla = "";
if(!isset($falla)){
echo '<font color="red">Intentó enviar una forma vacía. Por favor intente de nuevo.</font>';
}else{
$host="localhost"; // Host name
$username="user"; // Mysql username
$password="pass"; // Mysql password
$db_name="cosa"; // Database name
$tbl_name="reportes"; // Table name
// To protect MySQL injection
$fecha = mysql_real_escape_string(stripslashes($_POST['fecha']));
$usuario = mysql_real_escape_string(stripslashes($_POST['usuario']));
$falla = mysql_real_escape_string(stripslashes($falla));
$db = mysql_connect($host, $username, $password) or die('Cannot Connect '.mysql_error());
mysql_select_db($db_name) or die('Cannot select DB '.mysql_error());
$sql = "INSERT INTO $tbl_name(usuario, comentario, fecha, estado) VALUES('$usuario','$falla','$fecha', '0')" or die('mysql_error()');
mysql_query($sql) or die('Error SQL !'.$sql.'<br>'.mysql_error());
header("location:../../user/usuario.php");
mysql_close();
}
?>
這是完整的一個,並根據建議,我已經得到在這裏......仍然沒有得到任何東西到DB也發生了變化......
你可以編輯你的原始代碼示例以準確顯示你現在擁有的東西嗎? – nickohrn 2009-02-11 19:13:48
「sanitize」我的意思是「轉義字符是數據庫特有的」 - 就像你在$ fecha = mysql_real_escape_string(stripslashes($ _ POST ['fecha'])) – Piskvor 2009-02-11 19:15:19