Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我的 php 似乎遇到了问题,出现以下错误:
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 27
Warning: mysql_query() [function.mysql-query]: Access denied for user 'nightl7'@'localhost' (using password: NO) in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 36
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 36 Access denied for user 'nightl7'@'localhost' (using password: NO) SELECT * FROM markers WHERE select3 = ''
这是我的代码:
<?php
require("db_access.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$name=$_POST['name'];
$address=$_POST['address'];
$type=$_POST['type'];
$request=$_POST['$_REQUEST'];
// Select all the rows in the markers table
$inputs = array('select3');
$where = array();
foreach($inputs as $input)
{
if(!empty($_POST[$input])) {
$where[] = "{$input} = '" . mysql_real_escape_string($_POST[$input]) . "'";
}
}
if ($where) {
$query = 'SELECT * FROM markers WHERE ' . implode(' AND ', $where);
} else {
user_error("No rows returned by:<br />\n$query");
}
$result = mysql_query($query);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
// Fetch the result
$rowset = array();
while ($row = mysql_fetch_array($result)) {
$rowset[] = $row;
}
// Look at your rowset structure:
print_r($rowset);
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
我不知道为什么会收到密码错误,因为这就是我的 db_access.php 的样子:
<?
$username="nightl7_mapus";
$password="MYPASSWORD - is is correct :)";
$database="nightl7_map";
?>
最佳答案
到目前为止,您所拥有的看起来相当不错。在构建 WHERE
时,您已经正确转义了 SQL 输入。条款。您已正确检查查询结果中的错误。看起来您需要做的下一件事是获取查询结果行:
// You already have....
$result = mysql_query($query);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
// Fetch the result
$rowset = array();
while ($row = mysql_fetch_array($result)) {
$rowset[] = $row;
}
// Look at your rowset structure:
print_r($rowset);
// then do something with the $rowset array
更新您的 db_access.php
的问题:
如果此文件中的用户名和密码正确,则可能无法正确解析,因为 short_open_tags
在您的网络服务器上被禁用。
尝试更改<?
至<?php
在db_access.php
.
关于php - 在 php 中处理数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430989/