【问题标题】:Data isn't write in mysql database数据未写入mysql数据库
【发布时间】:2011-12-11 00:35:07
【问题描述】:

我有两个 php 文件。

这是一个和代码:

<?php
require_once('../includes/php.config.db.php');

//here i have a script (xpath) for exctracting data (work 100%)

  $naslov = $data['naslov'];
  $latitude = $data['lat'];
  $longitude = $data['lng'];
  $latitude = (float) $latitude;
  $lin = $data['link'];
  $vreme = $data['vreme'];

  $popust = str_replace ('POPUST','',$data['popust']);
  $firma = $data['firma']; 
  $telefon = $data['telefon'];
  $email = $data['email'];
  $sajt = $data['sajt'];
  $type = 'bar';


  $latitude = (float) $latitude;
  $longitude = (float) $longitude;

//end 

?>

第二个文件是我在上面调用的 php.config.db.php:

<?php

$link = mysql_connect('localhost', 'user', 'pass') or die('<p>Nije moguce uspostaviti konekciju sa database serverom!</p>');

mysql_select_db('tablename', $link);

mysql_query("SET NAMES utf8");

mysql_query("SET CHARACTER SET utf8");

mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");



function insertNewMarker($name='', $lat='', $lng='', $slika='', $link='', $type='', $popust='', $vaziDo='') {

    if(!empty($name) and !empty($lat) and !empty($lng) and !empty($link)) {

        $name = mysql_real_escape_string(trim($name));



        $sql = "INSERT INTO `markers` (`name`, `lat`, `lng`, `address`, `totolink`, `type`, `popust`, `vaziDo`) <br />

VALUES ('$name', '$lat', '$lng', '$slika', '$link', '$type', '$popust', '$vaziDo')";

        mysql_query($sql) or print "<p>Error in SQL Statement ($sql):<br />". mysql_error() .'</p>';

    }

    else {

        print "<p>Polja 'name', 'lat' i 'lng' ne smiju biti prazna!<br />Vi ste uneli <br />Name:$name<br />Lat:$lat<br />Lng:$lng</p>";

    }

}

?>

但是当我只启动 php 文件时,我得到一个没有错误的白屏,并且我的数据库是空的。为什么? (对不起我的英语)

【问题讨论】:

  • 设置display_errors值显示错误,还有error_reporting功能。
  • 基本调试怎么说?你在哪里打电话insertNewMarker()
  • 是的,看起来你从不调用 insertnewmarker
  • 仅供参考。您的代码可能容易受到 sql 注入的影响。
  • 还要确保require_once中使用的路径是有效的——if (is_file('../includes/php.config.db.php') &amp;&amp; is_readable('../includes/php.config.db.php')) require_once('../includes/php.config.db.php'); else die('Require path is invalid...');

标签: php mysql require-once


【解决方案1】:

您的 SQL INSERT 语句中有一个 &lt;br/&gt; 标记

 $sql = "INSERT INTO `markers` (`name`, `lat`, `lng`, `address`, `totolink`, `type`, `popust`, `vaziDo`) <br />

VALUES ('$name', '$lat', '$lng', '$slika', '$link', '$type', '$popust', '$vaziDo')";

应该是这样的:

 $sql = "INSERT INTO `markers` (`name`, `lat`, `lng`, `address`, `totolink`, `type`, `popust`, `vaziDo`) VALUES ('$name', '$lat', '$lng', '$slika', '$link', '$type', '$popust', '$vaziDo')";

【讨论】:

  • 如果这是真的,它至少会显示一个错误,因为它会通过打印错误捕获错误
  • 好吧,正如在另一条评论中所说,看起来好像包含此调用的函数本身从未被调用过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 2012-06-16
  • 1970-01-01
相关资源
最近更新 更多