Опять MySql ...

walker_ag

Новичок
Опять MySql ...

------------------------------------------------------------------------
<?php

define("DBname", "Name");
define("HostName", "Host");
define("UserName", "User");
define("Password", "Password");

if(!mysql_connect(HostName,UserName,Password))
{
echo "Не могу соединиться ! А ты можешь ? :)";
echo mysql_error();
exit;
}
mysql_select_db(DBname);

$abc = "INSERT INTO mytable (title, text) VALUES ( MyTitle, MyText)";

$query = "Select * from mytable'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

echo $row;

?>

------------------------------------------------------------------------

За место ижидаемого эффекта вывода "Mytitle MyText", скриптик выводит ошибку "Supplied argument is not a valid MySQL result resource".

Чем её не нравится 'result' ??
 

vladis

Guest
1\ Общая идея: Отладочная печать - это круто.
2\ Частная идея: делай echo mysql_error() после запроса к базе. И тебе все подробно в рот положут, разжуют и проглотят.
3\ Ну а этот конкретный пример - ты ж его наверно copy/paste сюда запихнул?
так какого черта у тебя в строке
$query = "Select * from mytable'";
ДЕЛАЕТ ОДИНОЧНАЯ КАВЫЧКА?!!
4\ И не выдаст тебе
echo $row;
то чего думаешь, $row - это, видишь ли, массив, а его элементам обычно обращаются $row[0], $row[1] и т.д.
 

Demiurg

Guest
А зачем лбые данные заключать в кавычки ?
Это особенность mysql или соображения безопастности ?
Просто mssql, напрмер, ругается, когда численные данные пихаются в кавычки.
 

Demiurg

Guest
ну а если тебе вместо числа подсунут &id=666%20or%'20' и ты сунешь это прямо в запрос ?
 

Yaha

Guest
Сунешь! ПХП4 автоматом кавычки заслеширует.
Если ПХП3 то нужно addslashes() использовать, а еще htmlspecialchars() не помешает
 

Yaha

Guest
Сунешь! ПХП4 автоматом кавычки заслеширует.
Если ПХП3 то нужно addslashes() использовать, а еще htmlspecialchars() не помешает
 

Demiurg

Guest
а то, что помоему легче сделать $id=intval($id); и забыть о том, что эта переменная может быть чем то кроме инта.
 

walker_ag

Новичок
$abc = "INSERT INTO mytable (title, text) VALUES ( MyTitle, MyText)"; - не для мебели. :) Я использую это для того, что бы засунуть какую-то информацию в таблицу.
Разве неправильно?

Так как же всё-таки выводить данные из таблицы если написанное выше- неверно?


--------------------------------------------------
$abc = "INSERT INTO mytable (title, text) VALUES 'mytitle', 'MyText')";
mysql_query($abc);

$query = "Select * from mytable";
echo mysql_error();
$result = mysql_query($query);
echo mysql_error();
$row = mysql_fetch_array($result);
echo mysql_error();
echo $row;
echo mysql_error();
?>
----------------------------------------------------
Результат-

Array


:) Что бы это могло значить?
 

ratman

Guest
Ты что прикалываешься что ли?

вместо echo $row; вставь
echo $row[title]." ".$row[text];

и echo mysql_error(); не надо после каждой строчки пихать.
 
Сверху