【发布时间】:2014-05-29 07:56:37
【问题描述】:
有人可以帮我把那些 mysql 的东西转换成 mysqli 吗?
我需要这个,因为 mysql-extention 会导致此警报:
"mysql 扩展已弃用,将在...中删除"
我尝试了 ConvertingTool,但它会响应警告/错误。 我还尝试在 google 和 w3school 的帮助下对其进行转换。
旧的已弃用 mysql 版本看起来像 THAT
但如果我尝试使用 mysqli 扩展,则图表不会出现。
-
这是连接器。
<?php define('DB_SERVER',"localhost"); define('DB_NAME',"Datenbank-Name"); define('DB_USER',"Datenbank-Username"); define('DB_PASSWORD',"Datenbank-Passwort"); $conn = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD); if(is_resource($conn)) { mysql_select_db(DB_NAME, $conn); mysql_query("SET NAMES 'utf8'", $conn); mysql_query("SET CHARACTER SET 'utf8'", $conn); } define("listViewTempPeriod", 24); // Anzeige der Stunden die ausgegeben werden sollen define("NUMSENSORS", 2); // Anzahl der Sensoren deren Werte in der Datenbank stehen ?> -
函数。
<?php function delLastChar($string="") { $t = substr($string, 0, -1); return($t); } function getChartValues($sensorID=0, $timePeriodInHours=24) { $q_data = mysql_query("SELECT DATE_FORMAT(datumzeit,'%H') AS STUNDE, sensorwert FROM arduino_sensorwerte WHERE sensorid = ".$sensorID." AND datumzeit >= date_sub(now(), interval ".$timePeriodInHours." hour) and datumzeit <= now() GROUP BY DATE_FORMAT(datumzeit, '%Y-%m-%d %H') ORDER BY datumzeit DESC") or die(mysql_error()); $n_data = mysql_num_rows($q_data); if($n_data > 0) { $chartValues = ''; $stundenValues = ''; while($r_data = mysql_fetch_array($q_data)) { $chartValues .= $r_data['sensorwert'].','; // Einzelne Werte durch Komma trennen $stundenValues .= $r_data['STUNDE'].','; // Einzelne Werte durch Komma trennen } $chartValues = delLastChar($chartValues); // Komma hinter dem letzten Temperaturwert entfernen $stundenValues = delLastChar($stundenValues); // Komma hinter letzter Stunde entfernen return array($chartValues, $stundenValues); } } function getSensorSettings($sensorID=0) { $q_data = mysql_query("SELECT mpcharttype, mplinetype, mpname, mpdescription, mplinecolor FROM arduino_messpunkte WHERE messpunktid = ".mysql_real_escape_string($sensorID)) or die(mysql_error()); $n_data = mysql_num_rows($q_data); if($n_data > 0) { $r_data = mysql_fetch_array($q_data); switch ($r_data['mpcharttype']) { case 1: $mpChartType = 'spline'; break; case 2: $mpChartType = 'line'; break; case 3: $mpChartType = 'areaspline'; break; case 4: $mpChartType = 'area'; break; case 5: $mpChartType = 'column'; break; case 6: $mpChartType = 'bar'; break; } switch ($r_data['mplinetype']) { case 1: $mpLineType = 'solid'; break; case 2: $mpLineType = 'ShortDash'; break; case 3: $mpLineType = 'ShortDot'; break; case 4: $mpLineType = 'ShortDashDot'; break; case 5: $mpLineType = 'ShortDashDotDot'; break; case 6: $mpLineType = 'Dot'; break; case 7: $mpLineType = 'Dash'; break; case 8: $mpLineType = 'LongDash'; break; case 9: $mpLineType = 'DashDot'; break; case 10: $mpLineType = 'LongDashDot'; break; case 11: $mpLineType = 'LongDashDotDot'; break; } $mpName = $r_data['mpname']; $mpDescription = $r_data['mpdescription']; $mpLineColor = $r_data['mplinecolor']; return array($mpChartType, $mpLineType, $mpName, $mpDescription, $mpLineColor); } } ?> -
主页上的“示例”调用:
<?php include_once("inc/db.inc.php"); include_once("inc/functions.inc.php"); if(!isset($_GET['timePeriodInHours'])) $_GET['timePeriodInHours'] = 24; else $_GET['timePeriodInHours'] = $_GET['timePeriodInHours']; if(!isset($_GET['chartStyle'])) $_GET['chartStyle'] = 1; else $_GET['chartStyle'] = $_GET['chartStyle']; $colors = array('#89A54E','#80699B','#3D96AE','#DB843D','#92A8CD','#A47D7C','#B5CA92'); for($i=0;$i<NUMSENSORS;$i++) { list($chartValues[], $stundenValues[]) = getChartValues($i+1, $_GET['timePeriodInHours'], 1); } $stundenValues = $stundenValues[0]; ?> <!DOCTYPE html> <html> <head> <title>Sensoren Übersicht</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="refresh" content="300"> <meta name="Robots" content="index,follow"> <link rel="stylesheet" type="text/css" href="css/highcharts.css"> <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script type="text/javascript"> $(function () { var chart; $(document).ready(function() { chart = new Highcharts.Chart( { chart: { renderTo: 'container' }, title: { text: 'Temperaturwerte der letzten <?php echo $_GET['timePeriodInHours'];?> Stunden' }, subtitle: { text: 'Alle Messstellen' }, xAxis: { title: { text: '' }, categories: [<?php echo $stundenValues;?>] }, yAxis: { title: { text: '' }, labels: { formatter: function() { return this.value +'°C' } } }, tooltip: { crosshairs: true, shared: true }, tooltip: { formatter: function() { return '<b>'+ this.series.name +'</b>'+this.x +' Uhr: '+ this.y +'°C'; } }, legend: { enabled: true }, credits: { enabled: false }, series: [ <?php for($i=0;$i<=NUMSENSORS;$i++) { if(!empty($chartValues[$i])) { list($mpChartType, $mpLineType, $mpName, $mpDescription, $mpLineColor) = getSensorSettings($i+1); ?> { type: '<?php echo $mpChartType;?>', dashStyle: '<?php echo $mpLineType;?>', name: '<?php echo $mpName;?>', color: '#<?php echo $mpLineColor;?>', data: [<?php echo $chartValues[$i];?>], marker: { symbol: 'square', enabled: false, states: { hover: { symbol: 'square', enabled: true, radius: 8 } } } }, <?php } } //for ?> ] //series }); }); }); </script> </head> <body> <div id="wrapper"> <script src="es_scripts/highcharts.js"></script> <div id="container"></div> </div> </body> </html>
【问题讨论】:
-
@Phil 老实说,来自已接受答案的链接导致了一个糟糕的“转换器工具”,它甚至无法正常工作
-
@YourCommonSense 我想。 OP 可以只搜索 "php mysql mysqli migration guide" 代替
-
我已经尝试在 google 和 w3schools 的帮助下解决它。但它没有按应有的方式工作。连接有效,但图表不再出现