【发布时间】:2014-11-05 17:53:43
【问题描述】:
我有一个有效的 SQL 查询,我试图在一个小的 PHP 脚本中使用它,但遇到 Parse 错误,尝试了很多变体。希望你能帮忙。最终结果将是有一个包含“日期”和“通道号”的两个字段表单,然后给出给定日期的“通道”行数的结果计数。抱歉,相当新的 PHP/SQL,谢谢。
<?php
// Connect to MSSQL and select the database
$link = mssql_connect('localhost', 'root', '', 'jm_db');
mssql_select_db('jm_db');
// Select all our records from a table
$mysql_query = mssql_query ('SELECT COUNT(*) FROM asterisk_cdr
WHERE calldate LIKE '%2014-10-11%'
AND channel LIKE '%SIP/4546975289%');
echo $sql;
?>
我已经重新编写了代码,但是得到“警告:mysql_fetch_array() 期望参数 1 是资源”和未定义的变量。
<?php
// Create connection
$mysqli = new mysqli($localhost, $root, $jm_db);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$sql = ("SELECT COUNT(*) FROM asterisk_cdr
WHERE calldate LIKE '%2014-10-11%'
AND channel LIKE '%SIP/4546975289%'");
$results= array();
while ($result = mysql_fetch_array($sql)) {
$results[]= $result;
}
foreach($results as $result){
echo $result['calldate'] . " " . $result['channel'];
}
?>
【问题讨论】:
-
旁注:您使用了错误的变量来回显它应该是
$mysql_query而不是$sql- 您还缺少报价。("SELECT COUNT(*) FROM asterisk_cdr WHERE calldate LIKE '%2014-10-11%' AND channel LIKE '%SIP/4546975289%'")试试看,这可能会修复你的代码。 -
您的
$mysql_query变量的单引号数量不匹配 (')。 -
您使用的是 MySQL 还是 Microsoft SQL Server?
-
@JayBlanchard 似乎 OP 正在使用后者。得到一个解析错误,所以这告诉我它正在工作,有点。但是缺少引号和没有使用双引号封装是主要错误。